Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 相同值上的expdend数组_Php_Arrays - Fatal编程技术网

Php 相同值上的expdend数组

Php 相同值上的expdend数组,php,arrays,Php,Arrays,我有这样一个数组: Array ( [0] => Array ( [item_id] => 18 [seller_id] => 1 [item_name] => test1 [price] => 10.00 [username] => user [ship_price] => 10.00 ) [1] => Array (

我有这样一个数组:

Array
(
[0] => Array
    (
        [item_id] => 18
        [seller_id] => 1
        [item_name] => test1
        [price] => 10.00
        [username] => user 
        [ship_price] => 10.00
    )

[1] => Array
    (
        [item_id] => 16
        [seller_id] => 1
        [item_name] => test2
        [price] => 10.00
        [username] => user
        [ship_price] => 20.00
    )
我在foreach之后得到这个数组:

 foreach($result as $i => $row){

    $row[$i]["item_id"]          = $row["PRODUCTS_ITEM_ID"];
    $row[$i]["seller_id"]        = $row["PRODUCTS_SELLER_ID"];
    $row[$i]['item_name']        = $row['PRODUCTS_ITEM_NAME'];
    $row[$i]['price']            = $row['PRODUCTS_PRICE'];
    $row[$i]['username']         = $row['username'];
    $row[$i]['ship_price']       = $row['ship_price'];

    }
如果“卖方id”相同,如何扩展阵列, 我只想将属于同一数组键中的“卖方id”的所有数据分组

我想得到这样的东西:(对不起,如果我有一个错误)

)

关于如何解决此问题,您有两个选项。第一种方法是在初始
foreach()循环中生成所需的数组结构。这意味着你只需要做一次。此选项的代码类似于下面的代码段

注意:密钥
卖方id
不是作为
字符串添加的;相反,键中的卖家id只是具有类似卖家id的物品的数字
卖家id
。这是故意的,因为如果您试图使用字符串键
seller\u id
,并且您的项目具有不同的
seller\u id
;您可以确定数据丢失,因为后续数据将覆盖以前的数据-密钥是静态的、相同的和相同的
[seller\u id]
:因此请记住这一点

关于如何解决此问题,您有两个选项。第一种方法是在初始
foreach()循环中生成所需的数组结构。这意味着你只需要做一次。此选项的代码类似于下面的代码段

注意:密钥
卖方id
不是作为
字符串添加的;相反,键中的卖家id只是具有类似卖家id的物品的数字
卖家id
。这是故意的,因为如果您试图使用字符串键
seller\u id
,并且您的项目具有不同的
seller\u id
;您可以确定数据丢失,因为后续数据将覆盖以前的数据-密钥是静态的、相同的和相同的
[seller\u id]
:因此请记住这一点

上面的代码可以帮助您


上面的代码可以帮助您。

这可能是您的需求解决方案。在
foreach
循环之后,执行以下操作:
$seller\u array=array()$卖方数组['卖方id']=$row;变量转储(卖方阵列)。这可能是您的需求解决方案。在
foreach
循环之后,执行以下操作:
$seller\u array=array()$卖方数组['卖方id']=$row;变量转储(卖方阵列)。谢谢,我想我得到了itOk Poiz,但如果我想以html格式输出结果,我如何按卖家id对结果进行分组,抛出foreach循环。@david2000结果已按
卖家id
进行分组。因此,如果你想从结果数组中输出一些HTML,你只需要在该数组中循环。但是,请记住,由于现在有了多维数组,因此可能必须使用嵌套循环来实现。例如:
foreach($arrsellorows as$sellerID=>$arrUniqueRows){foreach($arrUniqueRows as$key=>$value){//BUILD YOUR HTML MARKUP;}}}
谢谢,我想我得到了itOk Poiz,但是如果我想用HTML输出结果,我如何根据卖家id对结果进行分组,抛出foreach循环。@david2000结果已按
seller\u id
分组。因此,如果你想从结果数组中输出一些HTML,你只需要在该数组中循环。但是,请记住,由于现在有了多维数组,因此可能必须使用嵌套循环来实现。例如:
foreach($sellerID=>$arrUniqueRows){foreach($key=>$value){//建立HTML标记;}}
 Array
 (
 ["seller_id"] => Array
     (
        [0] => Array
        [item_id] => 18
        [seller_id] => 1
        [item_name] => test1
        [price] => 10.00
        [ship_price_value] => 10.00
        [username] => user 
        [ship_price] => 10.00

        [1] => Array
        [item_id] => 16
        [seller_id] => 1
        [item_name] => test2
        [price] => 10.00
        [ship_price_value] => 10.00
        [username] => user
        [ship_price] => 20.00
    )
<?php

    $arrSellerRows              = [];

    foreach($result as $i => $row){
        $temp                       = [];
        $sellerID                   = $row["PRODUCTS_SELLER_ID"];
        $temp[$i]["item_id"]        = $row["PRODUCTS_ITEM_ID"];
        $temp[$i]["seller_id"]      = $sellerID;
        $temp[$i]['item_name']      = $row['PRODUCTS_ITEM_NAME'];
        $temp[$i]['price']          = $row['PRODUCTS_PRICE'];
        $temp[$i]['username']       = $row['username'];
        $temp[$i]['ship_price']     = $row['ship_price'];

        if(!array_key_exists($sellerID, $arrSellerRows)){
            $arrSellerRows[$sellerID]   = [];
            $arrSellerRows[$sellerID][] = $temp;
        }else{
            $arrSellerRows[$sellerID][] = $temp;
        }
    }
<?php


    $array      = [
        [
            'item_id'       => 18,
            'seller_id'     => 1,
            'item_name'     => 'test1',
            'price'         => 10.00,
            'username'      => 'user',
            'ship_price'    => 10.00,
        ],
        [
            'item_id'       => 16,
            'seller_id'     => 1,
            'item_name'     => 'test2',
            'price'         => 10.00,
            'username'      => 'user',
            'ship_price'    => 20.00,
        ],
    ];


    function groupBySellerID($array){
        $arrSellerRows  = [];
        foreach($array as $iKey=>$arrData){
            $sellerID   = $arrData['seller_id'];
            if(!array_key_exists($sellerID, $arrSellerRows)) {
                $arrSellerRows[$sellerID]   = [];
                $arrSellerRows[$sellerID][] = $arrData;
            }else{
                $arrSellerRows[$sellerID][] = $arrData;
            }
        }
        return $arrSellerRows;
    }

    var_dump( groupBySellerID($array) );
    //YIELDS:::
    array (size=1)
      1 => // THIS NUMBER REPRESENTS THE SELLER_ID (WHICH IS 1)
        array (size=2)
          0 =>
            array (size=6)
              'item_id' => int 18
              'seller_id' => int 1
              'item_name' => string 'test1' (length=5)
              'price' => float 10
              'username' => string 'user' (length=4)
              'ship_price' => float 10
          1 =>
            array (size=6)
              'item_id' => int 16
              'seller_id' => int 1
              'item_name' => string 'test2' (length=5)
              'price' => float 10
              'username' => string 'user' (length=4)
              'ship_price' => float 20
$seller = array();
foreach($result as $i => $row){
    $seller['seller_id'][] = $row;
}
var_dump($seller);