• ベストアンサー
  • 困ってます

配列の中で特定の文字が入ってるキーを取り出したい

$sample = array('test1' => "aaa 000 222 333" ,'test2' => "b 555 888 999",'test3' => "c 777 000 10"); で「000」を含むものだけ吐き出したい場合はどのようにすればよいのでしょうか?? つまりこの場合だと 「aaa 000 222 333」と 「c 777 000 10」を表示させたいのですが、、、、。

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数39
  • ありがとう数1

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

  • ベストアンサー
  • 回答No.1

配列の各値に対して正規表現でマッチングを行います。 正規表現によるマッチングはpreg_match()関数を使用します。 この場合、 $sample = array('test1' => "aaa 000 222 333" ,'test2' => "b 555 888 999",'test3' => "c 777 000 10"); foreach ($sample as $text) { if (preg_match("/000/", $text)) { echo $text; } } で表示されると思います。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございました。 できました^^;

関連するQ&A

  • 配列の中に一部の文字があるかどか確認したい。

    <? header("Content-Type: text/html; charset=EUC"); $sample = array('test1' => "aaa 000 222 333" ,'test2' => "b 555 888 999",'test3' => "c 777 111 10"); if(in_array("222",$sample)){ echo "●"; } if(in_array("aaa 000 222 333",$sample)){ echo "○"; } ?> というようにPHPを記述すると「○」はでるのですが、 「●」がでません。 eregのように配列の中に一部の文字があるかどうかを確認する場合はどうしたらよいのでしょうか。

    • 締切済み
    • PHP
  • 特定の文からメールアドレスのみ抽出する方法

    下記の$text内の文章からメールアドレスのみ抽出し、配列に格納したいと思ったのですが、どのようにすればそのような事ができるのかわからなかったので、アドバイスいただける方がいらっしゃいましたら、ご教示の程よろしくお願いします。 <?php $text = <<<END "test1@test.co.jp" "test2@test.co.jp" <test2@test.co.jp> テスト test3@test.co.jp END; ?> なお、重複するメールアドレスは一つにまとめたいので、上記の場合、下記の値を取得したいと思います。 $array[0] = test1@test.co.jp; $array[1] = test2@test.co.jp; $array[2] = test3@test.co.jp; 以上、よろしくお願いします。

    • ベストアンサー
    • PHP
  • php 2つの配列の内、片方を元にして、1つの配列にしたい

    Data AとData Bをもとに Data Cを作成したいのです。 ※DataAに無くても、DataBにあるものはDataCに格納したい。 *Data A* ---------------------------- index | indexA | Name ---------------------------- 1    100   A_Test1 2    101   A_Test2 3    102   A_Test3 4    103   A_Test4 5    104   A_Test5 6    105   A_Test6 7    106   A_Test7 *Data B* ---------------------------- index | indexA | flg ---------------------------- 11   100   1 12   101   0 13   102   1 14   103   1 15   104   1 16   106   0 *Data C* indexAをkeyに結合 ------------------------------- index | ndexA | Name | flg ------------------------------- 1    100  A_Test1  1 2    101  A_Test2  0 3    102  A_Test3  1 4    103  A_Test4  1 5    104  A_Test5  1 6    NULL  A_Test6  0 7    106  A_Test7  0 arrayDataA = Array( [0] => Array([indexA]=> 100 [Name] = A_Test1           [1] => Array([indexA]=> 101 [Name] = A_Test2           [2] => Array([indexA]=> 102 [Name] = A_Test3           [3] => Array([indexA]=> 103 [Name] = A_Test4           [4] => Array([indexA]=> 104 [Name] = A_Test5           [5] => Array([indexA]=> 105 [Name] = A_Test6           [6] => Array([indexA]=> 106 [Name] = A_Test7          )) arrayDataB = Array( [0] => Array([indexA]=> 100 [flg] = 1           [1] => Array([indexA]=> 101 [flg] = 0           [2] => Array([indexA]=> 102 [flg] = 1           [3] => Array([indexA]=> 103 [flg] = 1           [4] => Array([indexA]=> 104 [flg] = 1           [5] => Array([indexA]=> 106 [flg] = 1          )) というところまで格納するこはできたのですが この、arrayDataAとarrayDataBを元に arrayDataCを作成したいのです。 初歩的なことかと思いますが、 どのように、プログラムを書くと実現できるのでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • phpの連想配列について・・

    質問させていただきます。 初歩的ですみません。。 以下のような連想配列を array(3) { ["hidden_name"]=> array(5) { [0]=> string(8) "test.jpg" [1]=> string(8) "test.jpg" [2]=> string(8) "test.jpg" [3]=> string(8) "test.jpg" [4]=> string(8) "test.jpg" } ["number"]=> array(5) { [0]=> string(1) "8" [1]=> string(1) "4" [2]=> string(2) "14" [3]=> string(2) "14" [4]=> string(2) "15" } ["comment"]=> array(5) { [0]=> string(5) "test1" [1]=> string(5) "test2" [2]=> string(5) "test3" [3]=> string(5) "test4" [4]=> string(5) "test5" } } っを以下のような改行区切りのデータに整形したいと考えています。 test.jpg,8,test1 test.jpg,4,test2 test.jpg,14,test3 test.jpg,14,test4 test.jpg,15,test5 当然、自動で増えたり減ったりします。 実は以前からこのパターンではまることが多く、効率の良い整形の仕方や マストなやり方があればご指南いただきたいです。 初歩的で申し訳ありませんが何卒よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • pg_fetch_assocにて取得した、指定レコードのフィールド値を変数に代入したい

    ・Array (   [0] => Array     (       [test1] => 11       [test2] => 22       [test3] => 33       [test4] => 44     ) ) それぞれのフィールドを変数として代入したいのです。 $test1=11 $test2=22 $test3=33 $test4=44 ご教示頂ければ幸いです。よろしくお願い致します。

    • ベストアンサー
    • 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
  • perl:2次元配列の値の取り出し方

    お世話になります。Perlの2次元ハッシュ配列の値の取り出し方をお教えください。以下の コード中、%test だと、値を入れるのが煩雑になるので、%test2や%test3のようなコードにしようと思うのですが、入れた値をとりだすコードが分かりません。。。ご指導ください。 my %test; $test{'A'}{'a'} = 1; $test{'A'}{'b'} = 2; my %test2 = ( 'P' => ['a'=>1, 'b'=>2], 'Q' => ['a'=>3, 'b'=>4] ); my %test3 = ( 'P' => ('a'=>1, 'b'=>2), 'Q' => ('a'=>3, 'b'=>4) );

    • ベストアンサー
    • Perl
  • bashで変数の文字列を編集するにはどうすれば良いですか?

    bashで変数の文字列を編集するにはどうすれば良いですか? ■モジュール-Top #!/bin/bash declare Test1=2010-06-10 declare Test3=2010-03-01 declare Test2=/home/user/test.sh declare Test1x declare Test2x declare Test3x Test1x=[Test1から算出] Test2x=[Test2から算出] Test3x=[Test3から算出] echo 'Test1x='${Test1x} echo 'Test2x='${Test2x} echo 'Test3x='${Test3x} ■モジュール-Bottom ■実行結果 Test1x=201006 Test2x=2010-02-28 Test3x=test.sh この時、[Test1から算出]、[Test2から算出]、[Test3から算出]は、どのようになりますか?

  • java enum

    private enum test {test1, test2, test3;} このenumに対して0~3の値を使ってtest1、test2、test3 を表示させることは出来るのでしょうか やり方などよろしくお願いします。

  • BackSpaceキーで上の階層のフォルダに進む方法

     今晩は,質問させていただきます. どうぞよろしくお願いいたします.  例えば C: \ test1 \ test2 \ test3 のtest3フォルダをショートカットから開いた際, BackSpaceキーを押すたびに, XPの場合は,→test2→test1 と上のフォルダへ移動できたのですが, Vistaになると →test2→test3→test2→test3・・・ と上の階層へ上がれず,不便なことが多いです.  どうにか,続けて上の階層へ戻ることは出来ないものでしょうか?  計算データなどが多いためフォルダ名が長いものが多いのですが, Explorer上部にある(上の階層の)フォルダ名がクリックしづらく 手間取っております.  設定か何かでできればよいのですが... お詳しい方がいらっしゃいましたら,どうぞよろしくお願いいたします