首页 > 解决方案 > 变量的多维数组键

问题描述

可悲的是我还没有找到任何解决方案。

我有一个看起来像这样的多维数组:

Array
(
    [0] => Array
        (
            [Symbol] => CASY.US
            [Position] => 169873920
        )
    [1] => Array
        (
            [Symbol] => US500
            [Position] => 168037428
        ) )

现在我想将内部数组的键名写入变量,以便我拥有这些变量的值:

$col1 = "Symbol"
$col2 = "Position"

我怎样才能做到这一点?不知何故有几个foreach循环?

背景:之后我想检查列是否具有正确的验证名称。

提前致谢!

标签: phparraysmultidimensional-arrayforeachkey

解决方案


循环嵌套并将键保存到一个带有“col”和一个整数的数组中,以后可以(如果你真的必须提取),但我建议将它们保留在数组中。

foreach($array as $subarray){
    $i = 1;
    foreach($subarray as $key => $val){
        $keys["col" . $i] = $key;
        $i++;
     }
     break; // no need to keep looping if the array is uniform
}
//if you must:
extract($keys);

https://3v4l.org/ALVtp


如果子数组不相同,那么您需要循环所有子数组并查看密钥是否已保存,如果未保存则跳过它。

$keys =[];
$i = 1;
foreach($array as $subarray){
    foreach($subarray as $key => $val){
        if(!in_array($key, $keys)){
            $keys["col" . $i] = $key;
            $i++;
        }
     }
}
var_dump($keys);
//if you must:
extract($keys);
var_dump($col1, $col2, $col3);

https://3v4l.org/EklPK


推荐阅读