我想知道如何存储来自foreach循环的所有值,我知道我在循环中重新初始化但我不确定如何存储数据。继承我的基本循环:
$array = array("v1", "v2", "v3", "v4");
foreach($array as $row){
$arr = array('val' => $row);
echo $row;
}
print_r($arr);
因此,当我使用print_r($arr)
时,输出的唯一内容将是v4
,我知道值存在,因为echo $row;
确实单独返回每个输出。
我的问题是如何将每个行实例存储在我的数组中?
答案 0 :(得分:3)
创建一个新数组,填充它:
$array = array("v1", "v2", "v3", "v4");
$newArray = array();
foreach($array as $row){
// notice the brackets
$newArray[] = array('val' => $row);
}
print_r($newArray);
答案 1 :(得分:0)
看起来你的数组存储错误了。
尝试调整$ arr = array('val'=> $ row);
为:
$ arr [] = array('val'=> $ row);
这将设置它,以便您将每一行作为一个单独的数组拾取,您可以轻松浏览。
希望这有帮助!
答案 2 :(得分:0)
如果我正确阅读,您希望将数组从简单值转换为'val' - >数字的键值对。 array_map是进行这种转换的简洁方法。
$array = array("v1", "v2", "v3", "v4");
$arr = array_map(function($v) { return array('val'=>$v); }, $array);
print_r($arr);
虽然在这种情况下无关紧要,但如果需要,array_map还具有保留键的便利功能。
请注意,您还可以为array_map提供命名函数,而不是提供内联实现,这在转换方法变得更复杂的情况下会很好。有关array_map here的更多信息。