示例:
$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
?
那么,我怎样才能获得存储在
$arraytest[0]
中的值呢?
只需使用 $arraytest[0]
. 数组是 $arraytest[0]
的值。 当你把它转换成一个字符串时,它只会说"数组"。
相反,如果您想迭代该数组,您已经知道如何做到这一点。
foreach ($arraytest[0] as $key => $val) {
echo $key, '=', $val, '<br/>';
}
孩子也有数组,所以你不能直接回显它。按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
解决方案可以是检查项目是否为数组,遍历它
foreach ($arraytest as $key=>$val) {
if ( is_array(@val))
{
foreach ($val as $k =>$v) {
echo $k. "=" .$v. "<br>";
}
}
else
echo $key. "=" .$val. "<br>";
}
但这只进入内部一个级别,您可以使用递归算法进入内部不可预测的级别数量
下面是遍历任何数组并打印其值的递归函数:
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
,因为它也是一个键。我更喜欢=>
而不是=
输出。