lau*_*kok 12 multidimensional-array php-5.5
$items = array(
1 => [
"id" => 5
],
3 => [
"id" => 6
],
4 => [
"id" => 7
],
);
var_dump(array_column($items,"id"));
Run Code Online (Sandbox Code Playgroud)
结果,
array (size=3)
0 => int 5
1 => int 6
2 => int 7
Run Code Online (Sandbox Code Playgroud)
但是我怎么能保持钥匙,$items所以我可以在下面得到这个?
array (size=3)
1 => int 5
3 => int 6
4 => int 7
Run Code Online (Sandbox Code Playgroud)
Ash*_*ary 21
看看这是否有帮助
array_filter(array_combine(array_keys($items), array_column($items, 'id')));
Run Code Online (Sandbox Code Playgroud)
我认为这是保持键没有循环和迭代的最快方法
array_diff(array_combine(array_keys($items), array_column($items, 'id')), [null])
Run Code Online (Sandbox Code Playgroud)
小智 5
寻找相同的解决方案并结合一些技巧,我创建了这个:
$userdb=Array
(
"test1" => array
(
'uid' => '100',
'name' => 'Sandra Shush',
'url' => 'urlof100'
),
"test2" => array
(
'uid' => '5465',
'name' => 'Stefanie Mcmohn',
'pic_square' => 'urlof100'
),
"test3" => array
(
'uid' => '40489',
'name' => 'Michael',
'pic_square' => 'urlof40489'
)
);
echo $key = array_search(
40489,
array_filter(
array_combine(
array_keys($userdb),
array_column(
$userdb, 'uid'
)
)
)
);
Run Code Online (Sandbox Code Playgroud)
结果是'test3'。
处理数组编号或命名数组。
最简单且最高效的方法可能是使用
array_combine(array_keys($data), array_column($data, 0));
Run Code Online (Sandbox Code Playgroud)
小智 -3
foreach(key($parameters) as $key)
{
print($key);
}
Run Code Online (Sandbox Code Playgroud)
如果需要,您还可以将该结果存储在其他变量中。
要显示键和值,请尝试以下操作:
foreach ($parameters as $key => $value) {
echo $key . ' = ' . $value . '<br>';
}
Run Code Online (Sandbox Code Playgroud)