簡體   English   中英

用PHP從MySQL構建多維數組

[英]building a multidimensional array from mysql with php

我試圖從mysql結果集中形成特定的多維數組。

我希望它看起來像這樣:

array(
'product_name' => 'prod_1',
'categories' => array(1,2,3,4)
);

db結果返回一個看起來像這樣的數組

Array
(
[0] => Array
    (
        [id] => 1
        [product_name] => prod_1
    )

[1] => Array
    (
        [id] => 2
        [product_name] => prod_1
    )

[2] => Array
    (
        [id] => 3
        [product_name] => prod_1
    )

[3] => Array
    (
        [id] => 4
        [product_name] => prod_1
    )

如您所見,我想對產品名稱進行分組並將ID放入另一個數組中

有人對如何執行此操作有任何提示嗎?

$yourarray = array(array('id'=>1, 'product_name' => 'prod_1'), array('id'=>2, 'product_name' => 'prod_2'),array('id'=>3, 'product_name' => 'prod_3'));
$multiarray = array();

for($i=0; $i<count($yourarray);$i++){
    $multiarray['product_name'][] = $yourarray[$i]['product_name'];
    $multiarray['product_id'][] = $yourarray[$i]['id'];
}

print_r($yourarray); //original array
print_r($multiarray); //gives you multi array

與此相似嗎?

您的原始數組:

Array
(
    [0] => Array
        (
            [id] => 1
            [product_name] => prod_1
        )

    [1] => Array
        (
            [id] => 2
            [product_name] => prod_2
        )

    [2] => Array
        (
            [id] => 3
            [product_name] => prod_3
        )

)

結果將打印:

Array
(
    [product_name] => Array
        (
            [0] => prod_1
            [1] => prod_2
            [2] => prod_3
        )

    [product_id] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
        )
)

您嘗試過GROUP_CONCAT嗎? 就像這樣:

SELECT name, GROUP_CONCAT(name) AS friends FROM friendships GROUP BY name;

在這里查看詳細信息: http : //forums.mysql.com/read.php?10,287931,287936#msg-287936

$yourarray = array(array('id'=>1, 'product_name' => 'prod_1'), array('id'=>2, 'product_name' => 'prod_1'), array('id'=>3, 'product_name' => 'prod_1'),array('id'=>4, 'product_name' => 'prod_1'));

$multiarray = array();
foreach ($yourarray as $value) {
    if(!isset($multiarray['product_name'])) {
        $multiarray['product_name'] = $value['product_name'];
    }    
    $multiarray['categories'][] = $value['id'];
}
print_r($multiarray);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM