1

私はこのような多次元配列を持っています$membergroups:

Array ( [0] => 
    Array ( [id] => 1645819602 
        [name] => Oryza NurFa 
        [first_name] => Oryza 
        [last_name] => NurFa 
        [work] => MAN 2 Yogyakarta ) 
    [1] => 
    Array ( [id] => 100000251643877 
        [name] => Lathif Pambudi 
        [first_name] => Muhammad Lathif 
        [last_name] => Pambudi 
        [work] => Omah TI ) 
    [2] => 
    Array ( [id] => 1152078197 
        [name] => Novantio Bangun 
        [first_name] => Novantio 
        [last_name] => Bangun 
        [work] => Pertamina))

特定の値を持つ子配列の 1 つを削除する方法。[id] => 100000251643877例として、内部で配列を削除したいですか? したがって、出力は次のようになります。

Array ( [0] => 
        Array ( [id] => 1645819602 
            [name] => Oryza NurFa 
            [first_name] => Oryza 
            [last_name] => NurFa 
            [work] => MAN 2 Yogyakarta ) 
        [1] => 
        Array ( [id] => 1152078197 
            [name] => Novantio Bangun 
            [first_name] => Novantio 
            [last_name] => Bangun 
            [work] => Pertamina))

ここに私のphpコードがありますが、動作しません:

if (($key = array_search($user_fbid, $membergroups)) !== false) {
   unset($membergroups[$key]);
}

どんな助けでも大歓迎です。ありがとうございました

4

4 に答える 4

4

あなたは利用することができますがarray_columnphp >= 5.5

if (($key = array_search($user_fbid, array_column( $membergroups, 'id') ) !== false) {
   unset($membergroups[$key]);
}

array_column( $membergroups, 'id')membergroup 多次元配列で id 列を検索し、id キーを持つすべての行値エントリを含む配列を返します。

array_column ->MANUAL

于 2013-10-29T08:57:53.680 に答える
0
foreach($membergroups as $key => $value){
  if($value['id'] == $user_fbid){
   unset($membergroups[$key]);  
  }
}

キーを削除した後に配列をマージして、インデックスを順次保持することを忘れないでください

$membergroups = array_merge($membergroups);
于 2013-10-31T03:03:37.200 に答える
0

foreach を使用すると、このような仕事を行うことができます

$id = 100000251643877;//Example
foreach($membergroups as $key => $value){
  if($value['id'] == $id){
    unset($membergroups[$key]);  
  }
}
于 2013-10-29T09:00:54.143 に答える