我有以下多维数组:
Array
(
[0] => Array
(
[name] => Botline
[description] => Kwese
[parent_team_id] =>
[company_id] => 10554
[id] => 13482
[external_id] => 13482
[extras] =>
)
[1] => Array
(
[name] => Books Boutique
[description] => Kwese
[parent_team_id] =>
[company_id] => 10554
[id] => 13483
[external_id] => 13483
[extras] =>
)
[2] => Array
(
[name] => Sij Investments
[description] => Kwese
[parent_team_id] =>
[company_id] => 10554
[id] => 13484
[external_id] => 13484
[extras] =>
)
[3] => Array
(
[name] => Steamcard Investments
[description] => Kwese installations
[parent_team_id] =>
[company_id] => 10554
[id] => 13549
[external_id] => 13549
[extras] =>
)
)
我希望能够在数组中循环搜索一个嵌套数组,该数组的id等于“13484”。在我找到'id'后,我希望能够获取该数组中的所有元素并保存它们。
可能位于主数组中的嵌套数组的数量是未定义的,因此我无法创建获得具有匹配值的正确数组的预定方法。我怎样才能做到这一点?
答案 0 :(得分:2)
假设您将多维数组命名为$someArrays
并使用$savedArray
来保存找到的数组
$savedArray = array();
foreach ($someArrays as $someArray) {
if ($someArray['id'] == '13549') {
$savedArray = $someArray;
break;
}
}
print_r($savedArray);
答案 1 :(得分:1)
无需循环,只需使用id
重新索引,然后引用该元素。这假定id
是唯一的:
$array = array_column($array, null, 'id');
$result = $array[13484];
或者,如果您只需要一次:
$result = array_column($array, null, 'id')[13484];
答案 2 :(得分:0)
在这里你可以根据id和它的相关值
$array = [[
'name' => 'Botline',
'description' => 'Kwese',
'parent_team_id' => '',
'company_id' => '10554',
'id' => '13482',
'external_id' => '13482',
'extras' => ''
]];
$id = [];
foreach ($array as $key => $value) {
$id[$value['id']]=$value;
}
在此处分配给id之后,id的输出如下
echo "<pre>";
print_r($id);
echo "</pre>";
Array
(
[13482] => Array
(
[name] => Botline
[description] => Kwese
[parent_team_id] =>
[company_id] => 10554
[id] => 13482
[external_id] => 13482
[extras] =>
)
)
echo "<pre>";
print_r($id['13482']['name']);
echo "</pre>";