Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何通过省略一列从多维数组中获取数据?_Php_Multidimensional Array - Fatal编程技术网

Php 如何通过省略一列从多维数组中获取数据?

Php 如何通过省略一列从多维数组中获取数据?,php,multidimensional-array,Php,Multidimensional Array,我将信息存储在循环中的数组中,如下所示: while ($ind = mysql_fetch_array($result)) $array["uniqueName"][$ind][$hash]["mac"] = $mac; 如果没有给我$hash,我如何获得所有$mac,因此通过上下文中的所有hash: $array["uniqueName"][432][?]["mac"] 我能用上面的“?”做什么?我可以忽略它吗?您可以像这样循环哈希键: $macs = array(); fore

我将信息存储在循环中的数组中,如下所示:

while ($ind = mysql_fetch_array($result))
    $array["uniqueName"][$ind][$hash]["mac"] = $mac;
如果没有给我$hash,我如何获得所有$mac,因此通过上下文中的所有hash:

$array["uniqueName"][432][?]["mac"]

我能用上面的“?”做什么?我可以忽略它吗?

您可以像这样循环哈希键:

$macs = array();
foreach($array["uniqueName"][$ind] as $hash){
    array_push($macs, $hash["mac"]);
}
根据评论更新:


foreach语句将$array[“uniqueName”][$id]包含的每个键逐个加载到$hash变量中。因此,您不必知道这些键实际上是什么(或者即使有),只需使用$hash变量引用它们即可使用它们。因此,实际上,foreach语句在$array[“uniqueName”][$id]包含的所有键上循环。

您可以像这样循环哈希键:

$macs = array();
foreach($array["uniqueName"][$ind] as $hash){
    array_push($macs, $hash["mac"]);
}
根据评论更新:


foreach语句将$array[“uniqueName”][$id]包含的每个键逐个加载到$hash变量中。因此,您不必知道这些键实际上是什么(或者即使有),您可以通过使用$hash变量引用它们来使用它们。因此实际上,foreach语句在$array[“uniqueName”][$id]包含的所有键上循环。

首先:您希望最终的数组是什么样的?一个$mac的列表。它甚至不需要是数组。我只需要按$id显示存储在中的所有$mac,而不是将$hash
foreach($array[“uniqueName”][$id]作为$hash=>$comp){if(isset($comp[“mac”]))}
这样?当我尝试Jeroen的答案与你的答案组合时,它成功了!喜欢我更改了这一行:foreach($array[“uniqueName”][$ind]为$hash=>$x){我不知道为什么,因为我以后不使用$x,但是$hash现在实际上包含了值。谢谢!首先:你希望最终的数组是什么样子?一个$mac的列表。它甚至不需要是数组。我只需要按$id显示存储在中的所有$mac,而不是给定$hash
foreach($ARRARY[“uniqueName”][$id]as$hash=>$comp){if(isset($comp[“mac”])}
像这样吗?当我尝试Jeroen的答案和你的答案组合时,它起了作用!就像。我改变了这行:foreach($array[“uniqueName”][$ind]as$hash=>x){我不知道为什么,因为我后来没有使用$x,但是$hash现在实际上包含了值。谢谢!我在回答中添加了一些说明。我对此有问题吗,因为我有几个数组(实际上是$GLOBALS[][][][][…])像这样:$array[“uniqueName”][$ind[$hash]=$opSt;$array[“uniqueName”][$ind[$hash][“mac”]=$mac;$array[“uniqueName”][$ind][$hash][“name”]=$name;?我不希望出现问题,您只需在密钥上循环并提取“mac”值,不管是否有其他值。实际上,我没有得到带有“as”的$hash值“在我的程序中,
$hash
以你的方式不是值而是键吗?如果你想这样使用
$hash
,我认为你应该使用
foreach($array['uniqueName'][$id]as$hash=>$info)
。我在回答中添加了一些说明。我在这方面有问题吗,因为我的数组很少(实际上是$GLOBALS[]像这样:$array[“uniqueName”][$ind][$hash]=$opSt;$array[“uniqueName”][$ind][$hash][“mac”]=$mac;$array[“uniqueName”][$ind][$hash][“name”]=$name;?我不希望出现问题,你只需循环键并提取“mac”值,不管那里是否有其他值。我实际上没有用“as”得到$hash的值在我的程序中,
$hash
在你的方式中不是值而不是键吗?如果你想那样使用
$hash
,我认为你应该使用
foreach($array['uniqueName'][$id]as$hash=>$info)