1

これら2つの配列があり、これらを組み合わせる必要があります

Array (
    [0] => Column 1
    [1] => Column 2
    [2] => Column 3
)
Array (
    [0] => Array (
            [0] => 111
            [1] => 222
            [2] => 333
        )
    [1] => Array (
            [0] => 444
            [1] => 555
            [2] => 666
        )
)

これに

Array (
    [0] => Array (
            [Column 1] => 111
            [Column 2] => 222
            [Column 3] => 333
        )
    [1] => Array (
            [Column 1] => 444
            [Column 2] => 555
            [Column 3] => 666
        )
)

これは私が持っているもので動作しますが、もっと簡単な方法で実行できると確信しています:

$values = array( array( 1,2,3), array( 4,5,6) );
$fields = array( 'Column 1','Column 2','Column 3');
$i = 0;
$j = 0;
$l = 0;
$rows = array();
$columns = array();

foreach($values as $val) {
    $rows[] = $val;

    foreach ($fields as &$field) {
        $columns[$j][$i] = $field;
        $i++;
    }
    $i = 0;
    $j++;
}

foreach($columns as $c){
    $result[] = array_combine($c,$rows[$l]);
    $l++;
}

出来れば綺麗にして欲しいものです。私は時々配列に苦労していますが、これは本当に私の頭を台無しにしました。:-)

4

2 に答える 2

4

配列の配列を繰り返し処理し、各配列をキーと共にarray_combine [docs]に渡します。

$result = array();

foreach($values as $key => $value) {
    $result[$key] = array_combine($fields, $value);
}
于 2012-08-02T15:46:18.347 に答える
1

array_combine()あなたがしたように、あなたがそれを得ることができるのは簡単だと思います。PHP はすべての関数を持っているわけではありませんが、その時点で必要なものを何でも作ることができるので、私には問題ないようです。

少し奇妙に、値とキーを別々の配列に入れる前に、私が思うに大きな配列で単純に foreach を実行できます...または、コードをすばやく見すぎたのでしょうか?

于 2012-08-02T15:48:32.390 に答える