PHP多维数组值替换为另一个值
我有一个数组如下PHP多维数组值替换为另一个值,php,multidimensional-array,Php,Multidimensional Array,我有一个数组如下 Array ( [0] => Array ( [0] => Pedigree Dry [1] => N/A [2] => N/A [3] => N/A ) [1] => Array ( [0] => Professional Range
Array
(
[0] => Array
(
[0] => Pedigree Dry
[1] => N/A
[2] => N/A
[3] => N/A
)
[1] => Array
(
[0] => Professional Range
[1] => N/A
[2] => N/A
[3] => N/A
)
[2] => Array
(
[0] => Pedigree Wet
[1] => N/A
[2] => N/A
[3] => N/A
)
[3] => Array
(
[0] => PMM
[1] => N/A
[2] => N/A
[3] => N/A
)
[4] => Array
(
[0] => Chappi
[1] => N/A
[2] => N/A
[3] => N/A
)
[5] => Array
(
[0] => Care & Treat
[1] => N/A
[2] => N/A
[3] => N/A
)
[6] => Array
(
[0] => Sheba
[1] => N/A
[2] => N/A
[3] => N/A
)
[7] => Array
(
[0] => Whiskas Dry
[1] => N/A
[2] => N/A
[3] => N/A
)
[8] => Array
(
[0] => Whiskas Wet
[1] => N/A
[2] => N/A
[3] => N/A
)
)
上面的代码是多维数组。但是所有数组元素(索引除外)都是N/A。我想用0替换所有N/A。
如何将所有N/A替换为0?我相信有比这更好的答案。。但您可以始终使用嵌套的foreach方法
//loop through each Array (first level)
foreach ($arrays as $array)
{
//create two variables for each sub array so you have access to keys and values
foreach ($array as $key=>$value)
{
if ($value = "N/A")
{
$value = 0;
}
}
}
这将遍历所有内部数组,并将所有“N/A”替换为零,并将它们添加到新的结果数组中
工作尝试以下方法:
function replaceNa($var) {
if ($var == 'N/A' ) {
return 0;
} else {
return $var;
}
}
$array = array(
array('Pedigre dry', 'N/A', 'N/A', 'N/A'),
array('Professional Range', 'N/A', 'N/A', 'N/A'),
array('Pedigree Wet', 'N/A', 'N/A', 'N/A'),
array('PMM', 'N/A', 'N/A', 'N/A'),
);
foreach ($array as $key => $item) {
$array[$key] = array_map('replaceNa', $item);
}
var_dump ($array);
对于这种情况,因为几乎所有的值都是
N/A
,我可能不会在数组中更改它们,而是在输出时更改它们?0:$val代码>假设一个循环。@Michael我知道上面的想法。我想把上面的值传递给另一个函数。在这种情况下,我会做什么?如果你真的需要修改它,那么阿里下面的答案是好的。我知道,不需要建议。你可能希望通过引用传递$array
和$value
foreach($array as$key=>&$value)
您需要在foreach
中使用数组引用来在迭代循环时实际修改循环(),这不会更改元素的值。$array[$key]=0
或foreach($array as&$value)
然后$value=0代码>如何替换数组中的字符串?str_replace替换字符串中的字符串。基本语法。无论如何,我并没有否决。@lolka_bolka str_replace可以替换所有数组值,因为它在所有数组值上循环。阅读文档。第三个参数是mixed
,这意味着它可以是一个数组。我还包括一个工作演示。
function replaceNa($var) {
if ($var == 'N/A' ) {
return 0;
} else {
return $var;
}
}
$array = array(
array('Pedigre dry', 'N/A', 'N/A', 'N/A'),
array('Professional Range', 'N/A', 'N/A', 'N/A'),
array('Pedigree Wet', 'N/A', 'N/A', 'N/A'),
array('PMM', 'N/A', 'N/A', 'N/A'),
);
foreach ($array as $key => $item) {
$array[$key] = array_map('replaceNa', $item);
}
var_dump ($array);