###実現したいこと
$datas
から$unset_id
に一致したものを削除し、$result
を得たいです。
###ソースコード
$unset_id = 2; $datas = [ ['id'=>1,'name'=>'a'], ['id'=>2,'name'=>'b'], ['id'=>3,'name'=>'c'], ]; $result = [ ['id'=>1,'name'=>'a'], ['id'=>3,'name'=>'c'], ];
###試したこと
以下でarray_filter
に挑戦中ですがうまくできません。
$unset_id = 2; $datas = [ ['id'=>1,'name'=>'a'], ['id'=>2,'name'=>'b'], ['id'=>3,'name'=>'c'], ]; $result = array_filter($datas, function($data) { if( $data['id'] === $unset_id ){ unset( $datas[$k] ); } }); var_dump($result);
use
を使ってみたりしたのですが、、、うーんです。
$result = array_filter($datas, function($data) use($unset_id) { if( $data['id'] === $unset_id ){ unset( $datas[$k] ); } }); var_dump($result);
自分のスキルでは以下のループでの実現ですが、上のようにarray_filter
を使うなどして少し高級な(?)やり方を覚えたいのです。宜しくお願い致します。
foreach ( $datas as $k => $data ) { if( $data['id'] === $unset_id ){ unset( $datas[$k] ); } } $result = array_values($datas); var_dump($result);
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/29 05:27
2020/10/29 06:28
2020/10/29 06:35
2020/10/29 10:39