• ベストアンサー

配列の違い

$sample = array('あ','い',う'); $sample[] = 'あ'; $sample[] = 'い'; $sample[] = 'う'; 上記の2つの書き方は同じですよね? しかし、『あ』『い』『う』の中身を関数にすると、前者の書き方でしか上手く機能してくれません。 この2つの配列の書き方に違いはあるのでしょうか? (コード記載に関してスペルミスがあったらすいません)

  • PHP
  • 回答数1
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5085/13292)
回答No.1

$sample = array(func('あ'),func('い'),func('う')); $sample[] = func('あ'); $sample[] = func('い'); $sample[] = func('う'); どちらでも同じ結果が得られると思いますが。

関連するQ&A

  • 配列の初期化

    表題の件で質問があります。 //------------------------------------// $A_array = array("1", "2", "3"); $B_array = array("9", "8"); for($cnt=0;$cnt<count($A_array);$cnt++){ $test[] = $A_array[$cnt]; } for($cnt=0;$cnt<count($B_array);$cnt++){ $test[] = $B_array[$cnt]; } ※わかりやすいようの簡単に書いてみました。 //------------------------------------// 上記の処理の場合配列testには ("9", "8", "3")となってしまい、 ("9","8")のデータを取得できません。 簡単に言うと配列名を使いまわししたいと考えています。関数かなにかで配列の中身を初期化するような ものはありますでしょうか?

    • 締切済み
    • PHP
  • PHPの配列

    配列操作で行き詰まったため質問させて頂きます。 ( [0] => Array ( [order] => 39 [time] => 16 ) [1] => Array ( [time] => 17 ) [2] => Array ( [time] => 18 ) [3] => Array ( [time] => 19 ) [4] => Array ( [order] => 39 [time] => 20 ) [5] => Array ( [time] => 21 ) ) 上記のように格納されている配列を下記のように縮めたいと考えています。 ( [0] => Array ( [order] => 39 [time] => 16 ) [1] => Array ( [time] => 17-19 ) [2] => Array ( [order] => 39 [time] => 20 ) [3] => Array ( [time] => 21 ) ) 要は、[order]が無く[time]が2個以上続いている場合、始めの[time]+[-]+最後の[time](order一個手前の)のようにしたいのですが、どのようにすれば良いのか色々考えたのですが行き詰ってしまいました。 どなたかどのようなコードを書けば良いか教えて頂けないでしょうか。 ※始めの配列の並びは例です、毎回配列の中身は違います、もちろん全部[order]が入っている場合もありますし、全部[time]の場合もあります。 よろしくお願い致します。

    • ベストアンサー
    • PHP
  • このような配列の場合の計算法はどうすればいいのですか?

    プログラミング言語(C言語、JavaScript、PHP)を勉強し始めたのですが、以下のような場合の計算法がわかりません。 もう2日悩んでいます…。 ■配列の中身が、3つあるとします。たとえば、array(10,20,30)とします。 このとき  printf((10*20) + (20*30) + (30*10)); という計算式の結果を求めたいです。 ■配列の中身が、4つあるとします。たとえば、array(10,20,30,40)とします。 このとき  printf((10*20*30) + (10*20*40) + (10*30*40) + (20*30*40)); という計算式の結果を求めたいです。 ■配列の中身が、5つあるとします。たとえば、array(10,20,30,40,50)とします。 このとき  printf((10*20*30*40) + (10*20*40*50) + (10*20*30*50) + (10*30*40*50) + (20*30*40*50)); という計算式の結果を求めたいです…(何度もすみません)。 上記のように配列の中身の個数と値が未確定の場合はどのようなコードで計算させればよいのでしょうか?配列の個数は1~10個を想定しております。 C言語、JavaScript、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
  • 連想配列と添字配列の違いについて

    MySQL初心者です。 mysql_fetch_arrayとmysql_fetch_assocの違いがいまいち理解できません。 ネットで調べると mysql_fetch_array — 連想配列、添字配列、またはその両方として結果の行を取得する mysql_fetch_assoc — 連想配列として結果の行を取得する と書かれていますが、連想配列と添字配列の違いが理解できませんでした。 全くの初心者でもわかるようにそれぞれの違いを教えていただけませんか? よろしくお願いします。

    • ベストアンサー
    • MySQL
  • 配列の渡し方

    お世話になります。 DBからの検索結果を指定した件数で表示するプログラムを作っています。最初のページはうまく表示できるようになったのですが、次のページを表示する際に検索条件が引き継がれずうまく表示できません。検索条件は配列で持っているのですが、配列の中身ごと次のページに引き渡すにはどうしたら良いのでしょうか? ちなみに現在は下記のようなコードで実行しています。 echo " <a href=\"".$_SERVER["PHP_SELF"]."?p=$next&gender=$genderUrl&area=$areaUrl\"> 次のページ</a>"; 上記のコードで言うと、&areaが配列になります。 &genderは単なる数値なのでうまく引き継がれるのですが、&areaはArray()となるだけでうまく引き継がれません。なお、配列の中身は2バイト文字です。 お手数をお掛けしますがよろしくお願いします。

    • 締切済み
    • PHP
  • 配列の抽出

    PHPの配列の関数で数行程度でフィルターのような機能は可能なのでしょうか? 以下、サンプルですが血液型がAの新しい配列を作成するには、どのようにしたら良いのでしょうか? また、新しい配列でなく$matrixを血液型がAのみにする方法も知りたいです。 実際の例で示していただけましたら助かります。 <?php // 血液型(blood)がAの人のみの新しい、配列にしたい。 $agent1 = array( "blood"=>"A", "B"=> 80, "W"=> 60, "H"=> 85 ); $agent2 = array( "blood"=>"B", "B"=> 90, "W"=> 62, "H"=> 90 ); $agent3 = array( "blood"=>"O", "B"=> 78, "W"=> 56, "H"=> 80 ); $agent4 = array( "blood"=>"AB", "B"=> 81, "W"=> 59, "H"=> 83 ); $agent5 = array( "blood"=>"A", "B"=> 88, "W"=> 58, "H"=> 84 ); $matrix = array(); array_push($matrix, $agent1); array_push($matrix, $agent2); array_push($matrix, $agent3); array_push($matrix, $agent4); array_push($matrix, $agent5); var_dump($matrix); exit; ?>

    • ベストアンサー
    • PHP
  • phpで、連想配列を普通の配列に変換する関数

    タイトル通りなのですが、phpで、連想配列を普通の配列に変換する関数ってありますでしょうか? $a = array("one" => "Sunday", "two" => "Monday", "three" => "Tuesday"); $b = array(0 => "Sunday", 1 => "Monday", 2 => "Tuesday"); $a配列を、$bに変換したいのです。 http://php.benscom.com/manual/ja/ref.array.php この辺とかは見てみたのですが、無いように見えました(見過ごしているような気もするのですが)。 無論、そういう機能を持つ関数は簡単に作れますが、既にphp自身で実装されているなら、それを使いたいと思います。 ありましたら、よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 配列の中にもう1度配列を宣言?

    今知人から昔に貰ったソースプログラムを読んでいます 自分の知識不足でどのようになっているのかわからない箇所があるので教えていただけると助かります 一部抜粋 test = new Array() for(i=0; i<9; i++) { test[ i ] = new Array() } 上記のコードは配列の中にまた更に配列を作成していると言うことで2次元配列なのでしょうか? わざわざこのような書き方をしたと考えられる事がありましたら教えていただけると助かります

    • ベストアンサー
    • Flash
  • 配列データを置き換える

    こんばんは。お恥ずかしい質問かと思いますが、配列の操作に関して分からないことがあっての質問です。 $array = array("ああ", "いい", "うう", "おお", "かか", "ええ"); という配列をasort()関数を使うことで、 Array ( [0] => ああ [1] => いい [2] => うう [3] => おお [4] => かか [5] => ええ ) が、 Array ( [0] => ああ [1] => いい [2] => うう [5] => ええ [3] => おお [4] => かか ) というふうになるかと思いますが、インデックスも書き換えるには、どのようにすれば宜しいのですか? 上記の例の場合、以下のように行っているのですが、 $array = array("ああ", "いい", "うう", "おお", "かか", "ええ"); print_r($array); asort($array); print_r($array); $arrayをfor文にて繰り返し表示をさせたとき、書き換えたインデックス順で表示させたいことから、以上のような流れでインデックスを書きけることが出来れば?と思っての質問です。 他にいい方法があれば、そちらも併せてアドバイスいただけたら嬉しいです。宜しくお願い致します。。

    • ベストアンサー
    • PHP