• 締切済み

【PHP】配列のキー名の修正は可能ですか?

PHP5利用者です。 例えば、 $myArray = array('ringo'=>200, 'momo'=>300, 'banana'=>100); と設定したあと、momo を sumomo に一発修正する方法はあるのでしょうか? momo を消して sumomo 追加では順番が変わりますし、 $myArray → $myArray2 に全要素移し替えというのも多次元配列の時などは煩雑ですし・・・ 関数など、もしワンタッチでできる方法があるなら教えてください。 ないならないであきらめて地道な手順でやりたいと思います。 よろしくお願いいたします。

みんなの回答

  • mpx
  • ベストアンサー率71% (149/209)
回答No.1

ワンタッチと言えるかどうか知りませんが、こんな方法が楽かと <?php $myArray = array('ringo'=>200, 'momo'=>300, 'banana'=>100); $keys=array_keys($myArray); $keys[array_search('momo',$keys)]='sumomo'; $myArray = array_combine( $keys, $myArray ); print_r($myArray); ?>

ikataro
質問者

補足

なるほど、微妙ですね… 多重配列とかでは難しい気が。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 【PHP】配列の最後の要素のキーを知るには

    以下のような乱雑な配列があったとして中身がわからない場合、最後の要素のキーが「12」であることを知るにはどうすればいいでしょうか? お詳しい方、よろしくお願いいたします。 $myArray = array(); $myArray[2] = ''; $myArray[5] = 'a'; $myArray[9] = NULL; $myArray[12] = 'z';

    • ベストアンサー
    • PHP
  • 【PHP】count( )の結果に納得がいかない

    PHP初心者です。 配列要素数を数えるcount()ですが納得いきません。 たとえば、 $myArray = array(); $myArray[0] = NULL; print count($myArray); とすると「1」となります。 NULL まで数えなくてもいいのに… NULLを数えたくないならどんな方法があるでしょうか? お詳しい方、よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • php&html printで二次元配列が表示できない

    <html><body> <?php $array1[]= array(); //二次元配列作成 $array1[0][0] = 123; print "$array1[0][0]"; ?> </body></html> というプログラムを作成してみたのですが、printの中身がhtmlでは”一次元配列$array1[0]”と”文字列[0]”という風に読み取られているようで、 表示が Array[0] となってしまいます。 どうにか二次元配列の値を表示する方法はありませんか?

    • ベストアンサー
    • PHP
  • 多次元配列のカウントのしかた

    すみません、質問させてください。 $array1:1次元配列 $array2:2次元配列 1次元配列のカウント(要素数)をしるには count($array1) とすれば取得することができますが、 2次元配列のカウントを取得するにはどのように すればいいのでしょうか?そんな関数はありますか? $array2のデータの中身 $array[0][0] = 'a'; $array[0][1] = 'b'; $array[1][0] = 'c'; $array[1][1] = 'd'; $array[2][0] = 'e'; $array[2][1] = 'f'; この場合、3という値が欲しいのですが・・・ 宜しくお願い致します。

    • ベストアンサー
    • 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
  • 不要な配列を消したい

    2次元配列で、不要な要素を取り除きたいのですが良い方法が思い浮かばず、どうしたものかと悩んでいます。 一番初めと5番目を消したいのですが、preg_match で日付の2006にマッチしない要素をunsetしてみましたがうまくいきませんでした。 $data = array ( array('<br>'), array("2006 03 22", test), array("2006 03 23", test2), array("2006 03 25", test3), array('') ); $pattern = '/2006/'; foreach($data as $key => $value) { if(preg_match($pattern, $value[$key])) { unset($data[$key]); } } もし方法をご存知のかたおられましたらよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • VBで配列の初期化について

    VBやVBAで1次元・2次元配列を、プログラムの中の 値の(リテラル的)記述で初期化する方法はどうすれば良いのでしょうか。1次元配列にはx=Array()で代用してきましたが、さて、行と列がある表のような、値データを2次元配列にセットしようとして、ハテナと行き詰まりました。配列名(要素)=値を要素数だけ繰り返す方法以外に、例えば A[][]={(a、b、c)(d、e、f)(g,h,i)}のような、書き方は出来ないのでしょうか。 複数のArrayをArreyの()内に入れてみましたがも上手く行かないようですが。 有り無しについて教えていただけたらと思います。 市販の解説書数書には触れた記述は見つかりませんでした。

  • 2次元配列を多次元配列にする。

    2次元配列を多次元配列にする。 PHP5で 2次元目はすべて同じキーの2次元配列を 2次元目のキーごとの内容を共通項にまとめて、 多次元配列にする方法を教えてください。 キーの数は膨大なので、関数の再帰呼び出し で、きれいに処理したいのです。 説明文では説明しきれないので、 やりたいことは↓の通りです。 array[0] = array([one] => "あ", [twe] => "う" [three] => "き"); array[1] = array([one] => "あ", [twe] => "う" [three] => "く"); array[2] = array([one] => "あ", [twe] => "え" [three] => "け"); array[3] = array([one] => "あ", [twe] => "え" [three] => "こ"); array[4] = array([one] => "い", [twe] => "お" [three] => "さ"); array[5] = array([one] => "い", [twe] => "お" [three] => "し"); array[6] = array([one] => "い", [twe] => "か" [three] => "す"); array[7] = array([one] => "い", [twe] => "か" [three] => "せ"); という配列があったら、これを↓のようにしたいです。 array( [あ] => array( [う] => array ("き", "く") [え] => array ("け", "こ") ) [い] => array( [お] => array ("さ", "し") [か] => array ("す", "せ") )   ) どうぞよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 多次元配列を2次元の連想配列で表したい

    PHP初心者です。 $category = array( array( 'ライフ' ), array( 'デジタルライフ', array( '携帯・PHS' ), array( 'ワンセグ放送' ) ), array( '趣味', array( 'AV機器', array( 'オーディオ' ), ), ), ); このような多次元配列を $new_category = array( array( 'id'=> '1', 'parent_id' => '-', 'name' => 'ライフ', ), array( 'id'=> '2', 'parent_id' =>'-', 'name' => 'デジタルライフ', ), array( 'id'=> '3', 'parent_id' => '2', 'name' => '携帯・PHS', ), array( 'id'=> 4, 'parent_id' => '2', 'name' => 'ワンセグ放送', ), array( 'id'=> 5, 'parent_id' => '-', 'name' => '趣味', ), array( 'id'=> '6', 'parent_id' => '5', 'name' => 'AV機器', ), ); このような二次元配列に変換したいです。 parent_idを入れておく配列を作って、階層が深くなったら前の要素のIDを配列に入れ、浅くなったら配列の末尾の要素を消去する…みたいなことを考えてあれこれやってみたのですが、なかなかうまくいきません。 何か良い方法がありましたら、教えていただけるとありたがいです。 よろしくお願い致します。

    • ベストアンサー
    • PHP
  • 配列の並びについて

    配列要素が思うように並んでくれません。 (1)のような配列を(2)のように配列要素を記述した順番で出力したいのですが、可能かどうか教えてください。 (1) $ary=array( "001"=>array("en"=>"TOYOTA","jp"=>"トヨタ"), "003"=>array("en"=>"HONDA","jp"=>"ホンダ"), "002"=>array("en"=>"NISSAN","jp"=>"日産") ); (2) Array([001]=>XXX [003]=>XXX [002]=>XXX) ↑このように出力したいのですが、自動的にソートされて Array([001]=>XXX [002]=>XXX [003]=>XXX)となります。 よろしくご教授下さい。お願いします。

    • ベストアンサー
    • PHP
楽天市場での買い物関連
このQ&Aのポイント
  • 楽天市場での買い物のお得な方法とは?
  • 楽天カードと楽天銀行の加入がお得
  • 楽天会員としての楽天銀行へのログイン方法
回答を見る