• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:他スクリプトの連想配列を扱いたい)

他スクリプトの連想配列を扱う方法

このQ&Aのポイント
  • a.phpの特定の連想配列を、b.phpで扱う方法について教えてください。b.phpで$a[japan][kansai]の配列を取得したいです。
  • requireを使用してa.phpを読み込むと、a.php内の他の実行処理も実行されてしまうため、NGです。txtなどに連想配列を出力してb.phpで読み込む方法も考えましたが、手間がかかるためNGです。
  • globalを使用して他のスクリプトの連想配列を読み込むことはできません。代替案として、他のスクリプトから関数を経由して連想配列を取得する方法を探しています。

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

  • ベストアンサー
  • exists
  • ベストアンサー率62% (27/43)
回答No.3

こんにちは、 test.php <?php $a = array("a","b"); if(count(get_included_files()) == 2){ var_dump($a); }elseif(count(get_included_files()) < 2){ echo "<p>hello</p>"; var_dump($a); } ?> hoge.php <?php include("test.php"); ?> test.phpの結果 hello array(2) { [0]=> string(1) "a" [1]=> string(1) "b" } hoge.phpの結果 array(2) { [0]=> string(1) "a" [1]=> string(1) "b" } で、どうですか?

hungry2002
質問者

お礼

希望どうりにできました! ただ、count(get_included_files())==2 の意味がわからないのですが これはどういう意味なのでしょうか??

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

その他の回答 (3)

  • exists
  • ベストアンサー率62% (27/43)
回答No.4

深い意味はありません。 var_dump(get_included_files()); とかして、配列に何が入っているか、みてみるとわかると思います。 もっといい方法あれば、書き残して置いてくださいね。 僕が勉強するので、、、

hungry2002
質問者

お礼

なるほどです。 探してみれば他にも何か方法ありそうですね。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.2

基本の考え方はNo1で良いけど その場合は require_once の方が妥当だと思うよ http://jp.php.net/manual/ja/function.require-once.php

hungry2002
質問者

お礼

ご回答ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • muchag
  • ベストアンサー率0% (0/2)
回答No.1

こんにちは muchag と申します。 a.php 内の連想配列定義部分または生成部分を a.php から切り離して 新たに hoge.php としてファイルを作成し、 それを a.php からも b.php からも require するのはいかがでしょう?

hungry2002
質問者

お礼

この連想配列は動的なものなのでa.phpから切り離しはできないんです・・・。 ご回答ありがとうございました。

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

関連するQ&A

  • 連想配列を配列に入れるには

    下記のような連想配列を配列に入れる簡単な方法はありますか。 array("a"=>"1","b"=>"2") 期待する結果(print_r) Array ( [0] => Array ( "a" => "1" ) [1] => Array ( "b" => "2" ) ) 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • 二つの配列から連想配列を作る方法

    @Aと@Bという二つの配列があり、そこから %C = ( "$A[0]" => "$B[0]", "$A[1]" => "$B[1]", "$A[2]" => "$B[2]", ・ ・ ・ ); という連想配列を作ることは出来ますでしょうか。 @Aと@Bは変動するので%Cは自動的に作成したいのです。 宜しく願い致します。

    • ベストアンサー
    • Perl
  • 連想配列の一部分を全て表示したいのですが・・。

    すみません。phpの事はあまりわからないのですが、以下のような連想配列がありまして、 (下記のような連想配列が大量にあります。) Array ( [0] => Array ( [a] => 1111 [0] => 1111 [b] => 2222 [1] => 2222 [c] => 3333 [2] => 3333 ) [1] => Array ( [a] => 5555 [0] => 5555 [b] => 6666 [1] => 6666 [c] => 7777 [2] => 7777 ) ) 上の配列から下記の配列のみ全て表示したいのですがどう記述したらよいでしょうか。 Array[0][a] Array[0][b] Array[0][c] Array[1][a] Array[1][b] Array[1][c]

    • ベストアンサー
    • PHP
  • 連想配列と比較させ変換したいのですが

    ファイルから a,h,2,26,f というデータを読み込んで %hash = (1=>'a',2=>'b',‥‥,26=>'z') のような連想配列と比較させ 1,8,b,z,6 となるように、読み込んだものが英字ならキーを、数字なら値を 出力させたいのですが可能でしょうか? お教え願います。

    • ベストアンサー
    • Perl
  • 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)-------------------------- $SS = $_SERVER['PHP_SELF']; $html_txt = <<<EOT ($SS) EOT; echo $html_txt; ------------------------------ これを一時的な変数を使わずに以下のようなコードで実行したいです。 -(2)-------------------------- $html_txt = <<<EOT ($_SERVER['PHP_SELF']) EOT; echo $html_txt; ------------------------------ これを実行すると # Parse error: syntax error, unexpected '"', # expecting T_STRING or T_VARIABLE or T_NUM_STRING in … というエラーが出てしまいます。 最悪、(1)でもいいと思っています。しかし(2)のようなケースでもできてもいいのではないかと思うのですが、エスケープを入れたり「$_SERVER["PHP_SELF"]」などとクォーテーションを変更したりしてもうまく行きません。 質問は以下です ・(2)のような記述はPHPでは不可能なのでしょうか? ・もし可能なら(1)の何が悪いのか、どうすればうまく行くのかを教えてください よろしくお願いします。

    • ベストアンサー
    • PHP
  • Perlのサブルーチンで連想配列(ハッシュ)を渡す

    Perlのサブルーチンで連想配列(ハッシュ)を渡す方法 -------------------------------------- $str=rep::replace(%A,$B,@C); -------------------------------------- sub refidrep ( \%\$\@ ){ my(%A,$B,@C)=(@_); } -------------------------------------- では、上手くいきませんでした。 どのようにしたら、連想配列をサブルーチンに渡せるのでしょうか? 分かる方いらっしゃいましたらご教授ください。

    • ベストアンサー
    • Perl
  • 連想配列について

    $kana["a"] = "あ"; $kana["i"] = "い"; $kana["u"] = "う"; $kana["e"] = "え"; $kana["o"] = "お"; このような連想配列を定義します。 それで$nameという変数にa~oのいずれかの値が入るとして、 echo $kana["$name"] ということはできないのでしょうか? echo $kana["a"] はちゃんと表示されたのでPHPやapacheの設定が間違ってるとは思えないのですが・・。

    • ベストアンサー
    • PHP
  • 3つの連想配列を交互に代入して、新しい連想配列を作りたい

    PHP Version 5.1.6を使っています。 それぞれの連想配列を先頭から順番に交互に代入したいのですが、 どのようなプログラムでできるのでしょうか? $arr1 = array(a1=>"aa1", a2=>"aa2", a3=>"aa3"); $arr2 = array(b1=>"bb1", b2=>"bb2", b3=>"bb3"); $arr3 = array(c1=>"cc1", c2=>"cc2", c3=>"cc3"); 代入後 $new_arr = array(  a1=>"aa1",  b1=>"bb1",  c1=>"cc1",  a2=>"aa2",  b2=>"bb2",  c2=>"cc2",  a3=>"aa3",  b3=>"bb3",  c3=>"cc3", );

    • ベストアンサー
    • PHP
  • 連想配列で

    繰り返し処理で連想配列の数字を変更しようとしたらうまくいきません 他にやり方ありますか? <?php $data['fre1']="りんご"; $data['fre2']="バナナ"; while ($k<3) { $k++; print(htmlspecialchars($data['fre{$k}'], ENT_QUOTES)); }

    • ベストアンサー
    • PHP