我有一个array_flipped数组,看起来像:
{ "a" => 0, "b" => 1, "c" => 2 }
Run Code Online (Sandbox Code Playgroud)
是否有一个标准函数,我可以使用它看起来像(所有值都设置为0?):
{ "a" => 0, "b" => 0, "c" => 0 }
Run Code Online (Sandbox Code Playgroud)
我尝试使用foreach循环,但如果我从其他编程语言中正确记得,你应该无法通过foreach循环更改数组的值.
foreach( $poll_options as $k => $v )
$v = 0; // doesn't seem to work...
Run Code Online (Sandbox Code Playgroud)
TL; dr:如何将数组的所有值设置为0?有这样的标准功能吗?
dec*_*eze 24
$array = array_fill_keys(array_keys($array), 0);
Run Code Online (Sandbox Code Playgroud)
要么
array_walk($array, create_function('&$a', '$a = 0;'));
Run Code Online (Sandbox Code Playgroud)
您可以使用a foreach来重置值;
foreach($poll_options as $k => $v) {
$poll_options[$k] = 0;
}
Run Code Online (Sandbox Code Playgroud)
array_fill_keys函数是最容易清除数组的函数.只是使用喜欢
array_fill_keys(array_keys($array), "")
Run Code Online (Sandbox Code Playgroud)
要么
array_fill_keys(array_keys($array), whatever you want to do)
Run Code Online (Sandbox Code Playgroud)
foreach 可能会导致您的表现下降,以确保您的实际需要.
像这样运行你的循环,它会工作:
foreach( $poll_options as $k => $v )
$poll_options[$k] = 0;
Run Code Online (Sandbox Code Playgroud)
此外,理想情况下,您在使用时不应该更改数组的结构foreach,但更改值不会有害.