トップページphp
1002コメント362KB

PHP質問・雑談スレ【初心者お断り(ROM歓迎)】©5ch.net

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん 転載ダメ©2ch.net2016/04/22(金) 08:58:11.47ID:???
PHP関する質問や雑談をするスレです。
初心者お断り(ROM歓迎)と書いてますが、初心者用のスレが用意されているからで、
難しい質問や話題をしなければいけないわけではありません。
PHPマニュアルの読み方を概ね理解していて、関数リファレンスが正しく読める方用のスレです。

PHP未導入の方や、手取り足取りが必要な初心者の方はくだスレへどうぞ。
【PHP】下らねぇ質問はここに書き込みやがれ 4
http://echo.2ch.net/test/read.cgi/tech/1457792733/

その他リンク
・PHPマニュアル
 https://secure.php.net/manual/ja/index.php
・コードテスト・貼り付け用
 http://ideone.com/
・プログラミングのお題スレ Part8 (求PHPer参戦)
 http://echo.2ch.net/test/read.cgi/tech/1444216746/

このスレで扱う話題
・PHPのコード,設定や設定値に関する質問
・常識的範囲内でのコードレビュー依頼・改良相談
・PECL,PEARに関する質問
・PHP新機能やPHP関連トレンドの話題
 (FWや非公式ライブラリの話題や特徴比較は良いが使い方から先の話題は専スレへ)
・PHPのバグ発見報告・公式に報告する前の検証依頼

このスレで扱わない話題
・直接関係ない○○特有の質問(専スレへ)
 (HH,エディタ,IDE,サーバ,OS,DB,SQL,FW,テンプレート,非公式ライブラリ・アプリケーション等)
・PHPの改造
0002nobodyさん2016/04/22(金) 16:35:57.63ID:???
$a = ["A" => ["a" => 1, "b" => 2], "B" => ["a" => 1, "b" => 2],
"C" => 10, "D" => ["E" => ["a" => 1, "b" => 2], "F" => ["a" => 1, "b" => 2]]];
こんな感じのわりと綺麗じゃない多次元連想配列があります。
9個ある値 A>a A>b B>a B>b C D>E>a D>E>b D>F>a D>F>b のうち、
$value % 2 == 0であるものを削除したいです。
上の例だと残るのは A>a B>a D>E>a D>F>a の4つになります。
1次元の配列だとforeachしてunset($a[$key])するだけなので簡単なのですが、
この場合どうしたらいいでしょうか?

array_walk_recursive($a, function(&$item) {
if ($item % 2 == 0) {
unset($this);
}
}
とか出来ればいいのですが出来ないので、今は苦肉の策として、
$item = null;
としています。
0003nobodyさん2016/04/22(金) 16:58:24.51ID:???
WebProg板は荒れることが多かったのでID表示のム板に移りましたよ。
それでもこの板に立てたいということワッチョイつければよいかと。

【PHP】下らねぇ質問はここに書き込みやがれ 4 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1457792733/
0004nobodyさん2016/04/22(金) 17:31:45.64ID:???
>>2
こんな感じじゃろか
function array_unset_recursive(&$array) {
 foreach ($array as $key => &$value) {
  if (is_array($value)) {
   array_unset_recursive($value);
  } else {
   if ($value % 2 == 0) {
    unset($array[$key]);
   }
  }
 }
}
array_unset_recursive($a);

>>3
監視乙
0005nobodyさん2016/04/22(金) 17:49:07.90ID:???
自演乙
0006nobodyさん2016/04/22(金) 17:56:54.01ID:???
向こうに閉じこもっとけよ
なんでこっちにいちいち来て煽るかなぁw
000722016/04/22(金) 18:09:14.36ID:???
>>4
ありがとうございます。
自身を参照出来るよう、objectに変換したりして試してましたがどうもうまくいきませんでした。
そちらの関数でうまくいったので使わせて頂きます。
どうもありがとうございました。
■ このスレッドは過去ログ倉庫に格納されています