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);