PHP-获取多维数组中数组的名称
我只需要知道PHP-获取多维数组中数组的名称,php,arrays,Php,Arrays,我只需要知道id就可以获得数组的名称(John,Mark,) array\u search不适合我,我不知道 Array ( [data] => Array ( [John] => Array ( [id] => 266 ) [Mark] => Array (
id
就可以获得数组的名称(John,Mark,
)
array\u search
不适合我,我不知道
Array (
[data] => Array
(
[John] => Array
(
[id] => 266
)
[Mark] => Array
(
[id] => 412
)
[Diana] => Array
(
[id] => 23
)
) )
您可以循环遍历对键和值进行迭代的数组,并查看值:
function findById(array $array, $id) {
foreach ($array as $name => $data) {
if ($data['id'] == $id) {
return $name;
}
}
return null;
}
echo findById($arr['data'], 412);
如果数组搜索不适用于多维数组 您仍然可以创建如下函数:
function findNamInArray($array, $id) {
foreach($array as $name => $subArray) {
if($subArray['id'] == $id)
return $name;
}
}
使用PHP5.5的函数
甚至
$result = key(
array_filter(
$myData['data'],
function($value) use ($id) {
return $value['id'] == $id;
}
)
);
var_dump($result);
只要id值存在,它将适用于早期版本的PHP。为什么数组搜索不适合您?您是否使用foreach在[data]上循环 让我们假设(因为没有提供)您的整个数组名为$array
function getname($id){
foreach($array['data'] as $row){
$name = array_search($id,$row);
return $name;
}
}
例如,当您像这样调用此函数时
$name = getname(23);
$name将是‘Diana’
还是我完全没有抓住重点
希望这有帮助 如果要多次查询此数据结构,则应以更合适的形式转换数组 您应该遍历数组并创建表单的新数组
$array = Array(
[266] => 'John',
[412] => 'Mark',
[23] => 'Diana',
...
)
然后您只需要使用
$array[id]
进行查询,就可以使用for($array as$key=>$value){echo$key.-“$value;}
遍历您的数组。这篇文章显示了一种可怕的缺乏努力的情况。毫无疑问,这只是一些数据的概要<代码>我没有任何线索不是正确的问题陈述不幸的是,我从API获得了数组。因此,我无法更改它。您可以在从API收到数据后更改数据;)在任何情况下,假设查询数组是O(常量),您将看到算法是O(n)。
$array = Array(
[266] => 'John',
[412] => 'Mark',
[23] => 'Diana',
...
)