- ベストアンサー
連想配列で値が空だったら、要素を削除したいのですが
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
個人的には array_filter http://php.net/manual/en/function.array-filter.php の方が好きになれそうな気がするが、 array_spliceとかの方を好む人もいるだろうか http://ideone.com/E8Bhg
関連するQ&A
- 空の配列を削除して、詰めていく。
データベースから値を取ってくるとき、全て、同じ値が入ってくる場合があります。 $a = array(100,100,100,100,100)というような。 これを、array_uniqueで重複している値を削除したのですが、その際、print_rで見ると、 Array ( [4] => 100 ) と表示されました。つまり、キーが0ではなく、4となってしまっています。 array_uniqueで帰ってきた値が複数なら、さらにsortすることで0から始まる配列として並び替えられるのですが、1つしか帰ってこないとsortをしても、キーは変わらないようです。 この値を表示させるとき、countで配列の数を数え、さらにfor文でcountの数だけ回し、print $i;で表示させるようにしているのですが、上記のようにarray_uniqueで1つの値しか帰ってこないと、ページに値がきちんと表示できなくなってしまいます。 これを解決するために、空の要素を削除して、空白でない要素のキーを前に詰めてくれるような関数などを探しているのですが、何か方法などありますでしょうか? Array ( [4] => 100 ) が Array ( [0] => 100 )となるようにしたいのです。 よろしくお願いいたします。
- 締切済み
- PHP
- QUERY_STRINGを連想配列に入れたい
よろしくお願いします。 $_SERVER['QUERY_STRING']の値 q1=abc&q2=def&q3=ghi を連想配列に入れたいと思います。 $array = array("q1"=>"abc","q2"=>"def","q3"=>"ghi"); どのようにしたらQUERY_STRINGの値を連想配列に入れられますか?
- ベストアンサー
- PHP
- 連想配列の要素を削除したい!
マニュアルを見ているのですが、沢山ある関数の中に、連想配列の要素を削除する関数が見当たりません。 $flutes{'a'} = "りんご"; $flutes{'b'} = "みかん"; このうち、bのみかんだけを削除したいのですが…。
- ベストアンサー
- PHP
- 思うような連想配列ができない・・
省略して説明します。 関東,東京,神奈川,千葉 中部,愛知,静岡,岐阜 関西,大阪,兵庫,京都 というCSVデータがあり これを以下のような、連想配列にしたいのですがどうすればよいのでしょうか?? Array ( [0] => Array ( [0] => 関東 [1] => 東京 [2] => 神奈川 [3] => 千葉 ) [1] => Array ( [0] => 中部 [1] => 愛知 [2] => 静岡 [3] => 岐阜 ) [2] => Array ( [0] => 関西 [1] => 大阪 [2] => 兵庫 [3] => 京都 ) ) --------------------------------- CSVデータを、feofで終端まで読み込み feofで一行ずつ取得 explodeでコンマで分解まではできるのですが 上記のような、連想配列ができません・・。 ご教授よろしくお願いします。
- ベストアンサー
- PHP
- 連想配列からの値の取り出し
お世話様です。 タイトルにもありますが連想配列を作成した後(以下に記述例)に その配列からキーを指定して値を取得したいと思っております。 array_keys関数だと値を指定してキーを取得するみたいで うまくいきませんでした。 何かよい方法ありませんでしょうか? //配列に格納 while (条件) { $aParaOra += array((キー) => (値)); }
- ベストアンサー
- PHP
- 「要素数が変動する連想配列」に、新たなキーを指定した上で、配列を追加し
「要素数が変動する連想配列」に、新たなキーを指定した上で、配列を追加したいのですが、 どうすればよいでしょうか? 元の連想配列$hash1 "ヨーロッパ"=>"スペイン", "南米"=>"ブラジル" 追加したい配列$hash2 [0]=>"東京", [1]=>"名古屋" array_pushしたら、下記のようになりました。 "ヨーロッパ"=>"スペイン", "南米"=>"ブラジル" [0]=> ______[0]=>"東京" ______[1]=>"名古屋" これを、下記のようにするには、どうしたらよいでしょうか? "ヨーロッパ"=>"スペイン", "南米"=>"ブラジル", "アジア"=> ______[0]=>"東京", ______[1]=>"名古屋"
- ベストアンサー
- PHP
- 特定の要素を抜き取って連想配列へ
例えば、 $hoge = "%_A_%あ%_A_%%_B_%123%_B_%%_C_%%_C_%%_D_%hogehoge%_D_%"; というようなデータがあった場合、 %_?_% の?部分を連想配列のキーとして、 そのはさまれた部分を前途キーの内容として格納したいのですが、 どのようにすればいいでしょうか? (%_?_%~%_?_% において?の組み合わせは必ず単一でしか存在しません) 求めている結果は $array['A'] => あ $array['B'] => 123 $array['C'] => //空要素 $array['D'] => hogehoge のような形です とりあえず if (preg_match("/%_([A-Z])_%(.*)%_$1_%/" , $hoge ,$matched) ){ // $matchedを解析して$arrayに割り当て } とすればいけるかな、と思いやってみましたがパターンマッチの条件にすら当てはまらず撃沈 preg_matchのマッチ条件内ではまだ$1が使えないようでした 環境はPHP4です よろしくお願いします
- ベストアンサー
- PHP
- 配列に動的に連想配列を入れる方法を教えてください
質問させてください。 $mods = array('def', 'con', 'vie'); (ここでは$modsの要素は3つですが、環境によって要素の数が変わるとします。) これを連想配列で array( 'def' => './a/b/def/o', 'con' => './a/b/con/o', 'vie' => './a/b/vie/o' ) のような形に動的にしたいと思います。 その為 array( $mods[$i] => './a/b/' . $mod[$i] . '/o', ) のように$modsの要素数だけ動的に入れていきたいのですがどのようにすればいいのでしょうか? array_push()だと値だけが入ると思うので、良く分かりませんでした。 $front->setControllerDirectory(array( 'default' => APP_DIR . DS . 'modules' . DS . 'default' . DS . 'controllers' )); のようなルーターにパスをその時の環境に合わせて$key=>$valueの連想配列をどんどん入れていきたいと考えております。 説明が分かりにくいかもしれませんが宜しくお願いします。
- ベストアンサー
- PHP
- 【PHP】配列を連想配列に
$m = array('a', 'b', 'c'); この配列 $m をもとに $n = array( 'a' => array( 'b' => array( 'c' => array()))); 上のような連想配列 $n をつくりたいのですが、 $n = array( $m[0] => array( $m[1] => array( $m[2] => array()))); 要素の数が固定のときは、これでもいいのですが、数が変動する場合に対応できません。 何か方法があれば教えてください。
- ベストアンサー
- PHP
- 連想配列を配列に入れるには
下記のような連想配列を配列に入れる簡単な方法はありますか。 array("a"=>"1","b"=>"2") 期待する結果(print_r) Array ( [0] => Array ( "a" => "1" ) [1] => Array ( "b" => "2" ) ) 宜しくお願い致します。
- ベストアンサー
- PHP
お礼
回答ありがとうございましたー