Php 数组-仅保留关键字为“的条目”;别名";以“开始”;a「;
我刚刚意识到,我并不熟悉php数组的术语。所以我希望你们能得到我想要的 我有一个这样的数组,其中包含多个“条目”: 我希望保留所有条目,其中“别名”以“a”开头,并去掉数组的其余部分,但保留数组的“结构”,因为我需要与每个“条目”关联的所有其他键和值 如何完成此操作?您可以使用将Php 数组-仅保留关键字为“的条目”;别名";以“开始”;a「;,php,arrays,Php,Arrays,我刚刚意识到,我并不熟悉php数组的术语。所以我希望你们能得到我想要的 我有一个这样的数组,其中包含多个“条目”: 我希望保留所有条目,其中“别名”以“a”开头,并去掉数组的其余部分,但保留数组的“结构”,因为我需要与每个“条目”关联的所有其他键和值 如何完成此操作?您可以使用将别名的第一个字母与a进行比较,从而从数组中删除不需要的元素: $out = array_filter($array, function ($value) { return $value['alias'][0] =
别名的第一个字母与a
进行比较,从而从数组中删除不需要的元素:
$out = array_filter($array, function ($value) {
return $value['alias'][0] == 'a';
});
如果需要不区分大小写的比较(因此它也匹配a
),请使用:
最后这很容易。我只需要在数组“phs”中检查“别名”,如下所示:
if ( $phs['alias'][0] == 'a' ) {
$out[] = $tagger->getChunk($rowTpl, $phs);
}
现在我只输出“别名”以字母“a”开头的所有条目
感谢所有试图帮助你的人 对于您提供的示例数据,您的预期输出是什么?您能为您的代码设置一点格式吗?(让我们看看你做了什么)@Nick-谢谢你的承诺。。。但是呃。。。只是将条目保留在“alias”-键以“a”开头的位置,因此根据我的两行示例,应该只剩下第一行。这有帮助吗?@EMEm谢谢你的澄清,这是我所期望的,但我总是想确定。@Qirel-谢谢你编辑我的第一篇文章,下次我会尝试这样做$out=array\u filter($array,function($value)使用($letter){
获得更动态的approach@Nick-非常感谢您的回答。通过使用您的第一个代码示例,我丢失了许多其他键和值,我只得到了以下信息:Array([alias]=>aya cissoko-(frankreich)[group\u sort\u field]=>alias[group\u sort\u dir]=>asc)
@Cid-也谢谢你的帮助!@EMEm这只会删除别名元素以a开头的值;你能分享一些显示问题的示例数据吗?@Nick-我假设所有数据都会被保留,就像在我的第一篇帖子中:数组([id]=>385[tag]=>Aya Cissoko(Frankreich)[标签]=>阿雅·西索科(法兰克帝国)[别名]=>阿雅·西索科-(法兰克帝国)[集团]=>4[排名]=>266[集团id]=>4[集团名称]=>Künstler[集团别名]=>kuenstler[集团字段类型]=>tagger字段标签[集团允许新]=>1[集团删除未使用的]=>0[集团允许空白]=>1[集团允许类型]=>1[集团自动显示]=>0[集团隐藏]=>0[组标记限制]=>0[组显示模板]=>3,36,44[组位置]=>以下内容…
$out = array_filter($array, function ($value) {
return strtolower($value['alias'][0]) == 'a';
});
print_r($out);
if ( $phs['alias'][0] == 'a' ) {
$out[] = $tagger->getChunk($rowTpl, $phs);
}