2

次の配列が含まれていると仮定します。

Array (
     [0] => 099/3274-6974
     [1] => 099/12-365898
     [2] => 001/323-9139
     [3] => 002/3274-6974
     [4] => 000/3623-8888
     [5] => 001/323-9139
     [6] => www.somesite.com
)

どこ:

  • で始まる値000/, 002/ and 001/は携帯(携帯)電話番号を表します
  • で始まる値099/は電話(固定)番号を表します
  • で始まるValeswww.はWebサイトを表します

指定された配列を3つの新しい配列に変換する必要があります。各配列には、arrayTelephone、arrayMobile、arraySiteなどの適切な情報が含まれています。

関数in_arrayは、指定された配列のキーの値全体がわかっている場合にのみ機能しますが、これは私の場合ではありません。

4

4 に答える 4

2

3つの空の配列を作成し、でソース配列をループし、foreach各値を検査し(これには正規表現が適しています)、アイテムをそれぞれの配列に追加します。

于 2012-04-28T23:18:50.233 に答える
1

すべてのアイテムをループして、最初の4文字に基づいて適切な配列に並べ替えます。

$arrayTelephone = array();
$arrayMobile = array();
$arraySite = array();

foreach($data as $item) {
    switch(substr($item, 0, 4)) {
        case '000/':
        case '001/':
        case '002/':
            $arrayMobile[] = $item;
            break;
        case '099/':
            $arrayTelephone[] = $item;
            break;
        case 'www.':
            $arraySite[] = $item;
            break;
    }
}
于 2012-04-28T23:20:42.523 に答える
1

配列をループして、条件に基づいて値を正しい新しい配列にプッシュできます。例:

<?php

$fixed_array = array();

foreach ($data_array as $data) {
    if (strpos($data, '099') === 0) {
        $fixed_array[] = $data;
    }

    if ....
}
于 2012-04-28T23:20:57.223 に答える
0

はい、私は実際にpreg_matchを使用して完全なコードを記述しましたが、いくつかのコメントを読んだ後、道を示す方が良いことを受け入れます。

arrayTelephone、arrayMobile、arraySiteという名前の3つの異なる配列を作成します。

foreachまたはforループを使用して最初の配列を検索するよりも。現在のループ値を基準と比較し、「continue」ステートメントでループを続行するだけでプッシュした後、値を便利な新しい配列(arrayTelephone、arrayMobile、arraySite)の1つにプッシュします。

あなたは完璧なPHPガイドを追加することを探すことによって解決策を見つけることができます

于 2012-04-28T23:30:48.993 に答える