0

2つの配列を1つのforeachループに結合すると、成功を収めることができます。

<?php
//var
$phone_prefix_array = $_POST['phone_prefix']; //prefix eg. 60 (for country code)
$phone_num_array    = $_POST['phone'];
$c_name_array       = $_POST['customer_name'];

foreach (array_combine($phone_prefix_array, $phone_num_array) as $phone_prefix => $phone_num) { //combine prefix array and phone number array
    $phone_var = $phone_prefix . $phone_num;
    $phone     = '6' . $phone_var;

    if ($phone_prefix == true && $phone_num == true) { //filter if no prefix number dont show

        echo $phone;
        //customer_name_here

    } else {
  }

}
?>

結果は次のようになります。

60125487541 Jake
60355485541 Kane
60315488745 Ray
63222522125 Josh

しかし、別の配列$c_name_arrayをforeachloppに組み合わせる方法がわかりません

PHPバージョン:5.2.17

4

1 に答える 1

3

array_combineあなたの場合のひどい回避策であり、最初の配列の値が有効なキーでない場合 (つまり、int または string でない場合) は機能しません。

PHP 5.3+ には次の機能がありMultipleIteratorます。

$iterator = new MultipleIterator();
$iterator->attachIterator(new ArrayIterator($phone_prefix_array));
$iterator->attachIterator(new ArrayIterator($phone_num_array));
foreach ($iterator as $current) {
    $phone_prefix = $current[0];
    $phone_num = $current[1];
    // ...
}

PHP 5.4 以降、ループをより簡潔に記述できます。

foreach ($iterator as list($phone_prefix, $phone_num)) {
    // ...
}
于 2013-02-06T08:25:39.553 に答える