13

データベース クエリを実装した後、以下の多次元配列を取得しています。

二次元配列

Array
(
    [0] => Array
        (
            [t1] => test1
        )

    [1] => Array
        (
            [t2] => test2
        )

    [2] => Array
        (
            [t3] => test3
        )

    [3] => Array
        (
            [t4] => test4
        )

    [4] => Array
        (
            [t5] => test5
        )

)

しかし、以下の形式のように、それを一次元配列に変換したい:

一次元配列

Array (
    t1 => test1
    t2 => test2
    t3 => test3
    t4 => test4
    t5 => test5
)

これどうやってするの?

4

18 に答える 18

10

array_reduce() 関数を使用できると思います。例えば:

   $multi= array(0 => array('t1' => 'test1'),1 => array('t2' => 'test2'),2 => array('t3' => 'test3'),3 => array('t4' => 'test4'));
   $single= array_reduce($multi, 'array_merge', array());
   print_r($single);  //Outputs the reduced aray
于 2017-01-11T11:09:10.533 に答える
5

次のように使用できます。

$newArray = array();
foreach($arrayData as $key => $value) {
    foreach($value as $key2 => $value2) {
        $newArray[$key2] = $value2;
    }
}

$arrayData は DB データ配列で、$newArray は結果になります。

于 2017-01-11T11:05:22.720 に答える
3

この機能を試して、

function custom_function($input_array)
{
    $output_array = array();
    for ($i = 0; $i < count($input_array); $i++) {
        for ($j = 0; $j < count($input_array[$i]); $j++) {
            $output_array[key($input_array[$i])] = $input_array[$i][key($input_array[$i])];
        }
    }
    return $output_array;
}

$arr = custom_function($arr);
print_r($arr);

試してみてください、うまくいきます。

于 2017-02-05T12:24:47.817 に答える
2
// Multidimensional array
$arrdata = Array(
    '0' => Array(
        't1' => 'test1'
    ) ,
    '1' => Array(
        't2' => 'test2'
    ) ,
    '2' => Array(
        't3' => 'test3'
    )
);

// Convert to a single array
$data = array();
foreach($arrdata as $key => $value) {
    foreach($value as $key1 => $value1) {
        $data[$key1] = $value1;
    }
}
echo $data;
于 2017-01-11T11:29:28.333 に答える
2

これを使用できます

<?php
$temp = array(array('t1' => 'test1'), array('t2' => 'test2'), array('t3' => 'test3'), array('t4' => 'test4'), array('t5' => 'test5'));

$result_array = array();
foreach ($temp as $val) {
  foreach ($val as $key => $inner_val) {
    $result_array[$key] = $inner_val;
  }
}
print_r($result_array);

?>
于 2017-01-11T11:07:27.697 に答える
1

PHPwhile listeach. ここで確認できる2番目の例のPHP Webサイトからサンプルコードを取得しました

$arr = [['t1' => 'test1'],['t2' => 'test2'],['t3' => 'test3'],['t4' => 'test4'],['t5' => 'test5']];
$output = [];
while (list($key, $val) = each($arr)) {
    while (list($k, $v) = each($val)) {
    $output[$k] = $v;
}
}
print_r($output);

作成される出力は

Array
(
    [t1] => test1
    [t2] => test2
    [t3] => test3
    [t4] => test4
    [t5] => test5
)

このサンドボックスの例で、自分でテストできます。

于 2017-02-11T15:52:25.020 に答える
0

これはトリックを行います

$array = array_column($array, 't1');

注: この関数 array_column は PHP 5.5 で導入されたため、それ以前のバージョンでは機能しません。

于 2017-07-14T06:00:23.273 に答える
0

これは私のために働く

 $result = [];
              foreach($excelEmails as $arr)
              {
                  foreach ($arr as $item){
                      $result = array_merge($result , $item);
                  }
              }
              dd($result);
于 2021-06-19T20:21:51.740 に答える
-1

すべての 2 次元配列を 1 次元配列に変換する方法をお勧めします。

<?php

  $single_Array = array();

  //example array
  $array = array(
    array('t1' => 'test1'), 
    array('t2' => 'test2'), 
    array('t3' => 'test3'), 
    array('t4' => 'test4'), 
    array('t5' => 'test5'));

 $size = sizeof($array);

 //loop to fill the new single-dimensional array
 for($count = 0; $count<sizeof($array);$count++)
 {
    //take the key of multi-dim array
    $second_cell = key($array[$count]);
    //set the value into the new array
    $single_array[$count] = $array[$count][$second_cell];
 }

 //see the results
 var_dump($single_array);


?>

このスクリプトを使用すると、キーと値を取得して新しい 1 次元配列を作成できます。お役に立てば幸いです。

ここで例を見ることができます: Array Convert Demo

于 2017-01-11T11:41:05.087 に答える