1

私はデータベースからこのような配列($ query)を持っています:

Array
(
[0] => Array
    (
        [category] => Mercedes
    )

[1] => Array
    (
        [category] => BMW
    )

[2] => Array
    (
        [category] => Bentley
    )

)

配列$categoryにしたい:

Array
(
    [0] => Mercedes
    [1] => BMW
    [2] => Bentley
)

array_merge()で何かを試しましたが、結果が希望どおりになりません。

4

7 に答える 7

2

配列を反復処理し、各「カテゴリ」値を選択する必要があります。

foreach ($query as $array) {
    $newArray[] = $array['category'];
}

$newArray必要に応じて値が含まれます。

于 2013-03-04T13:48:29.553 に答える
1

次のようなものを試すことができます。ここでは、任意の深さの多次元配列を再帰的にフラット化します(ここから)。

function array_flatten($array) { 
    if (!is_array($array)) { 
        return FALSE; 
    }

    $result = array(); 

    foreach ($array as $key => $value) { 
        if (is_array($value)) { 
            $result = array_merge($result, array_flatten($value)); 
        } else { 
            $result[$key] = $value; 
        } 
    } 

    return $result; 
} 
于 2013-03-04T13:48:59.667 に答える
1

データベースから返された配列内の各配列を循環させたい場合:

foreach($query as $row)
{
    $category[] = $row['category'];
}
于 2013-03-04T13:49:49.017 に答える
0

最も明白な解決策:

$res = array();

foreach ($tab as $val) {
    $res[] = $val['category'];
}
于 2013-03-04T13:50:12.157 に答える
0
$new_array = array_map(function($v){return $v['category'];}, $old_array);
于 2013-03-04T13:50:27.510 に答える
0

私が思いついたインラインソリューション:

$new = end(call_user_func_array('array_merge_recursive', $arr));

を除く要素が複数ある場合、これは正しく機能しないことに注意してくださいcategory。もしそうなら、あなたはこのようなこのソリューションを採用することができます:

$new = call_user_func_array('array_merge_recursive', $arr);
$new = $new['category'];

しかし、これはそれほどクールではなく、通常のforeach方法で行う方が良いです。

于 2013-03-04T14:00:28.230 に答える
0

問題が解決しました !!。

    $query = array
    (
    array
        (
            'category' => 'Mercedes'
        ),

    array
        (
            'category' => 'BMW'
        ),

    array
        (
            'category' => 'Bentley'
        )

    );

    $category = array();

    foreach( $query as $queryArray ){

        foreach( $queryArray as $key => $value ){

             $category[] = $value;

        }

    }

    //echo '<br />';
    print_r( $category );
于 2013-03-04T14:09:36.110 に答える