0

私は2つの配列を持っています

<?php
$array1 = array(0 => 'zero_a', 2 => 'two_a', 3 => 'three_a');
$array2 = array(0 => 'zero_b', 2 => 'two_b', 3 => 'three_b');
?>

出力を次のようにしたい:「ゼロ:zero_a zero_b。one:one_a one_b。など...

そのため、配列内の外観によって接続された 2 つの配列の値が必要です。私はすでにforeachで試しましたが、1つの配列のすべての値を他の配列のすべての値に接続したため、最終的に9つの出力になりました...

4

2 に答える 2

0

少し長めですが、動作します。

<?php
$array1 = array(0 => 'zero_a', 2 => 'two_a', 3 => 'three_a');
$array2 = array(0 => 'zero_b', 2 => 'two_b', 3 => 'three_b');
?>

<?php
$shortestArray = (count($array1) < $array2)? $array1 : $array2; // Get the max number of elements
$newArray = array();
for($i = 0; $i < count($shortestArray); $i++){
    if(isset($array1[$i]) && isset($array2[$i])){
        array_push($newArray, $array1[$i]." ".$array2[$i]);
    }
}
$longestArray = ($shortestArray != $array1)? $array2 : $array1;
for($i = count($shortestArray)-1; $i < count($longestArray); $i++){
    array_push($newArray, $longestArray[$i]);
}

print_r($newArray);

?>
于 2013-09-07T11:57:35.870 に答える
0

使用する:

<?php
$array1 = array(0 => 'zero_a', 2 => 'two_a', 3 => 'three_a');
$array2 = array(0 => 'zero_b', 2 => 'two_b', 3 => 'three_b');
foreach(array_combine($array1,$array2) as $key=>$value) {

    echo substr($key,0,-2).":".$key." ".$value.".";

    //or
    //$k = explode("_",$key);
    //echo $k[0].":".$key." ".$value.".";

}
?>

また、2つ以上の配列に対しても実行できます

<?php
$array1 = array(0 => 'zero_a', 2 => 'two_a', 3 => 'three_a');
$array2 = array(0 => 'zero_b', 2 => 'two_b', 3 => 'three_b');
$array3 = array(0 => 'zero_c', 2 => 'two_c', 3 => 'three_c');
//........more array
foreach($array1 as $key=>$value) {  
    $k = explode("_",$value);
    echo $k[0].":".$array1[$key]." ".
                   $array2[$key]." ".
                   $array3[$key].". "
                   //.........more array item concat
                   ;
}
?>
于 2013-09-07T11:48:52.037 に答える