0
foreach ($arr as $key => $value) {
    foreach ($arr_ as $key_ => $value_) {
        $dev[$value_][] = array_search($value_, $arr[$key]);
    }
}

配列検索からブール値 false をすべて除外する必要がありますが、元のキーは保持します。だから、これは私がAAAAに望むものです。どうやってやるの?

'AAAA' => 
        array
          1 => int 0
          3 => int 1
          5 => int 1
          7 => int 2
          9 => int 1
          11 => int 2
          13 => int 2
          15 => int 3

私が持っているもの:

array
  'AAAA' => 
    array
      0 => boolean false
      1 => int 0
      2 => boolean false
      3 => int 1
      4 => boolean false
      5 => int 1
      6 => boolean false
      7 => int 2
      8 => boolean false
      9 => int 1
      10 => boolean false
      11 => int 2
      12 => boolean false
      13 => int 2
      14 => boolean false
      15 => int 3
  'BBBB' => 
    array
      0 => boolean false
      1 => boolean false
      2 => int 0
      3 => int 0
      4 => boolean false
      5 => boolean false
      6 => int 1
      7 => int 1
      8 => boolean false
      9 => boolean false
      10 => int 1
      11 => int 1
      12 => boolean false
      13 => boolean false
      14 => int 2
      15 => int 2
  'CCCC' => 
    array
      0 => boolean false
     ....
4

4 に答える 4

3

単一の配列の場合、これを使用できます。

foreach($array as $key => $element) {
    if($element === false) {
        unset($array[$key]);
    }
}

次に、それを別の foreach ループにラップして、他のループを処理します (参照に注意してください&$array)。

foreach($arrays as &$array) {
    foreach($array as $key => $element) {
        if($element === false) {
            unset($array[$key]);
        }
    }
}
于 2013-09-30T21:16:32.177 に答える
1
$arr = array(false,0,false,1,false,2,false,0,false);
$out = array_filter($arr, function($in) { return false !== $in; });
var_dump($out);

出力:

array(4) {
  [1]=>
  int(0)
  [3]=>
  int(1)
  [5]=>
  int(2)
  [7]=>
  int(0)
}
于 2013-09-30T21:22:19.617 に答える
0

ここでこの回答を参照してください:配列から要素を削除する

unset() を使用して、 if ステートメントによってトリガーされたキーを保持できます(if false) { unset($array[$index]) } etc

于 2013-09-30T21:17:26.973 に答える
0

を使用するarray_filterと、元のキーが保存されますphp.net: array_filter

$newArr=array_filter($oldArr, function($el) { return $el !== false; })
于 2013-09-30T21:19:08.517 に答える