我的问题是,我如何从某个数组的确定级别获得所有值,我有这个数组:
array (size=4)
'Azul' =>
array (size=2)
'128GB' =>
array (size=2)
'Cristal' => string 'Cristal' (length=7)
'Plastico' => string 'Plastico' (length=8)
'64GB' =>
array (size=1)
'Cristal' => string 'Cristal' (length=7)
'Blanco' =>
array (size=2)
'32GB' =>
array (size=1)
'Plastico' => string 'Plastico' (length=8)
'64GB' =>
array (size=1)
'Madera' => string 'Madera' (length=6)
'Dorado' =>
array (size=1)
'64GB' =>
array (size=1)
'Plastico' => string 'Plastico' (length=8)
'Verde' =>
array (size=1)
'64GB' =>
array (size=1)
'Madera' => string 'Madera' (length=6)我想用这个递归函数得到第一个级别,但是我找不到比两个级别更深的级别,例如,我需要第一个级别,我得到:
Azul,Blanco,Dorado,Verde
但是我需要我得到的Azul的第二个级别:128 of,64 of
问题是,如果我需要Azul的第三级和64 get,我可以做什么来获得这个,拥有密钥Azul和64 get或第三级。
我的递归函数是这样的:
function recursive($array, $level, $itemLVL)
{
foreach ($array as $key => $value) {
//If $value is an array.
if (is_array($value)) {
//We need to loop through it.
if ($level == $itemLVL) {
//echo "<br> Key: $key - Nivel:$level $itemLVL";
echo "<option value='$key'>$key</option>";
}
recursive($value, $level + 1, $itemLVL);
} elseif ($level == $itemLVL) {
echo "<option value='$key'>$key</option>";
}
}
}发布于 2020-09-01 03:39:03
如果您知道键的名称和顺序,则如下所示将返回这些键下的内容:
function get_array_path($path, $array) {
$temp =& $array;
foreach($path as $key) {
$temp =& $temp[$key];
}
return $temp;
}按顺序传递一个键数组:
$result = get_array_path(['Azul', '64GB'], $array);如果您只需要路径下的密钥,而不是其他所有内容,则将false作为第三个参数传递:
function get_array_path($path, $array, $values=true) {
$temp =& $array;
foreach($path as $key) {
$temp =& $temp[$key];
}
if($values === false) {
$temp = array_keys($temp);
}
return $temp;
}https://stackoverflow.com/questions/63677010
复制相似问题