Php 数组-仅保留关键字为“的条目”;别名";以“开始”;a「;

Php 数组-仅保留关键字为“的条目”;别名";以“开始”;a「;,php,arrays,Php,Arrays,我刚刚意识到,我并不熟悉php数组的术语。所以我希望你们能得到我想要的 我有一个这样的数组,其中包含多个“条目”: 我希望保留所有条目,其中“别名”以“a”开头,并去掉数组的其余部分,但保留数组的“结构”,因为我需要与每个“条目”关联的所有其他键和值 如何完成此操作?您可以使用将别名的第一个字母与a进行比较,从而从数组中删除不需要的元素: $out = array_filter($array, function ($value) { return $value['alias'][0] =

我刚刚意识到,我并不熟悉php数组的术语。所以我希望你们能得到我想要的

我有一个这样的数组,其中包含多个“条目”:

我希望保留所有条目,其中“别名”以“a”开头,并去掉数组的其余部分,但保留数组的“结构”,因为我需要与每个“条目”关联的所有其他键和值

如何完成此操作?

您可以使用将
别名的第一个字母与
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);
    }