Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 二维数组-如果不是值,则取消设置_Php_Arrays_Multidimensional Array_Unset - Fatal编程技术网

Php 二维数组-如果不是值,则取消设置

Php 二维数组-如果不是值,则取消设置,php,arrays,multidimensional-array,unset,Php,Arrays,Multidimensional Array,Unset,我有一个二维数组,希望删除所有值不是“Name1”的元素。他们应保留索引编号(键): 将输出 Array ( [array001] => Array ( [0] => Name1 [3] => Name1 ) [array002] => Array ( [1] => Name1 ) [array003] =

我有一个二维数组,希望删除所有值不是“Name1”的元素。他们应保留索引编号(键):

将输出

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]);
    }
  }
}