返回嵌套数组键名而不是索引



我试图通过循环数组来返回名称和值,为此我正在使用array_walk_recursive函数。一切正常,除了它返回嵌套数组索引而不是名称。在下面的示例中,我希望索引是"name3",但由于主数组是动态的,因此循环不能特定于该嵌套数组。

数组

Array
(
[name1] => value
[name2] => value
[name3] => Array
(
[0] => value1
[1] => value2
)
)

功能

function test($value, $name) {
echo "<input type='hidden' name='$name' value='$value'>";
}
array_walk_recursive($array, 'test');

输出

<input type='hidden' name='name1' value='value'>
<input type='hidden' name='name2' value='value'>
<input type='hidden' name='0' value='value1'>
<input type='hidden' name='1' value='value2'>

尝试做这样的事情

foreach ($array as $name => $value) {
if(is_array($value))
{
// convert it to string by the way you want
}
echo "<input type='hidden' name='$name' value='$value'>";
}

它比我想象的要简单,为此需要一个嵌套的foreach。

foreach ($array as $name => $value) {
if (is_array($value)) {
foreach ($value as $name2 => $value2) { 
echo '<input type="hidden" name="'.$name."[]".'" 
value="'.$value2.'">';
} 
} else {
echo '<input type="hidden" name="'.$name.'" value="'.$value.'">';
}
}

最新更新