php从存储在assoc数组中的数组中获取值

时间:2014-11-29 16:43:23

标签: php arrays foreach

示例:

$arraytest = array(
key => array("test"),
key2 => value2,
key3 => value3);

foreach ($arraytest as $key=>$val) {
echo $key. "=" .$val. "<br>";
}

结果:

key=Array
key2=value2
key3=value3

那么,我怎样才能获得存储在$arraytest[0]中的价值?我需要在foreach中使用foreach来获取

key=test
key2=value2
key3=value3

4 个答案:

答案 0 :(得分:0)

  

那么,我如何获得存储在$arraytest[0]中的价值?

只需使用$arraytest[0]即可。数组 $arraytest[0]的值。当你将它转换为字符串时,它只会说&#34;数组&#34;。

如果您希望迭代该数组,您已经知道如何做到这一点。

foreach ($arraytest[0] as $key => $val) {
  echo $key, '=', $val, '<br/>';
}

答案 1 :(得分:0)

孩子也有阵列,所以你不能直接回应它。按is_array()检查。例如:

$arraytest = array(
    'key' => array("test"),
    'key2' => 'value2',
    'key3' => 'value3'
);

foreach ($arraytest as $key=>$val) {
    echo (is_array($val)) ? $key. "=" .$val[0]. "<br>" : $key. "=" .$val. "<br>";
}

<强>输出:

key=test
key2=value2
key3=value3

答案 2 :(得分:0)

解决方案可以是检查项目是否为数组,遍历它

foreach ($arraytest as $key=>$val) {
    if ( is_array(@val))
    {
        foreach ($val as $k =>$v) {
          echo $k. "=" .$v. "<br>";
        }
    }
    else
        echo $key. "=" .$val. "<br>";
}

但这里面只有一个级别,你可以使用递归算法来获得不可预测的数量级别

答案 3 :(得分:0)

这是遍历任何数组并打印其值的递归函数:

function valuePrint($mixed, $keyStr = '')
{
    if(is_array($mixed)) {
        foreach ($mixed as $key => $value) {
            valuePrint($value, $keyStr . $key . '=>');  // Recursive call
        }
    } else {
        echo $keyStr . $mixed . "\n"; // For html output use '<br/>' instead of "\n"
    }
}

调用函数的示例:

$arraytest = array(
    'key'  => array('test'),
    'key2' => 'value2',
    'key3' => 'value3',
);

valuePrint($arraytest);

通话结果将是:

key=>0=>test
key2=>value2
key3=>value3

还会显示内部数组的键0,因为它也是一个键。我首选=>而不是=作为输出。