我将2个阵列组合成一个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
合并到foreach lopp
PHP版本:5.2.17
答案 0 :(得分: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)) {
// ...
}