Php 二维数组-如果不是值,则取消设置
我有一个二维数组,希望删除所有值不是“Name1”的元素。他们应保留索引编号(键): 将输出Php 二维数组-如果不是值,则取消设置,php,arrays,multidimensional-array,unset,Php,Arrays,Multidimensional Array,Unset,我有一个二维数组,希望删除所有值不是“Name1”的元素。他们应保留索引编号(键): 将输出 Array ( [array001] => Array ( [0] => Name1 [3] => Name1 ) [array002] => Array ( [1] => Name1 ) [array003] =
Array
(
[array001] => Array
(
[0] => Name1
[3] => Name1
)
[array002] => Array
(
[1] => Name1
)
[array003] => Array
....
)
当数组转换为字符串时,可以使用foreach循环和preg_replace实现可能的解决方案:$array=print_r($array,true)代码>尝试以下操作:
function removeElementDifferentValue($array, $value){
foreach($array as $subKey => $val){
if($val != $value){
unset($array[$subKey]);
}
}
return $array;
}
$array = removeElementWithValue($array, 'Name1');
他们没有一个人在工作
我自己找到了解决办法:
foreach($array as $key => $value) {
foreach($value as $innerkey => $innervalue){
if($innervalue != 'Name1'){
unset($array[$key][$innerkey]);
}
}
}
不幸的是,没有工作,请参阅我自己找到的解决方案;)<代码>致命错误:无法取消设置字符串偏移量
您的代码与我的相同,您只是使用了不同的字符串比较。对不起,是的,您是对的,我不知道是什么原因导致了错误;)无论如何谢谢你!
function removeElementDifferentValue($array, $value){
foreach($array as $subKey => $val){
if($val != $value){
unset($array[$subKey]);
}
}
return $array;
}
$array = removeElementWithValue($array, 'Name1');
foreach($array as $key1 => $val1) {
foreach($val1 as $key2 => $val2) {
if(strcmp($val2,"Name1") != 0) {
unset($array[$key1][$key2]);
}
}
}
foreach($array as $key => $value) {
foreach($value as $innerkey => $innervalue){
if($innervalue != 'Name1'){
unset($array[$key][$innerkey]);
}
}
}