这是我的当前阵列的结果:我如何从数组中提取元素并在php中创建一个新的元素?
array(10) {
[0]=>
array(5) {
["sku"]=>
string(2) "10"
["name"]=>
string(17) "ACID TARTRIC 1KG "
["price"]=>
float(44)
["cantitate"]=>
string(6) "27.000"
["id_gest"]=>
string(1) "1"
}
[1]=>
array(5) {
["sku"]=>
string(2) "11"
["name"]=>
string(12) "FIR ERT 250 "
["price"]=>
float(8)
["cantitate"]=>
string(5) "7.000"
["id_gest"]=>
string(1) "1"
}
[2]=>
array(5) {
["sku"]=>
string(2) "12"
["name"]=>
string(40) "ZDROBITOR DESCIORCHINATOR ENO 15 SMALTO "
["price"]=>
float(1830)
["cantitate"]=>
string(5) "2.000"
["id_gest"]=>
string(1) "1"
}
[3]=>
array(5) {
["sku"]=>
string(2) "12"
["name"]=>
string(40) "ZDROBITOR DESCIORCHINATOR ENO 15 SMALTO "
["price"]=>
float(1830)
["cantitate"]=>
string(5) "5.000"
["id_gest"]=>
string(2) "11"
}
[4]=>
array(5) {
["sku"]=>
string(2) "13"
["name"]=>
string(42) "ZDROBITOR DESCIORCHINATOR ENO 15 SEMIINOX "
["price"]=>
float(2440)
["cantitate"]=>
string(5) "1.000"
["id_gest"]=>
string(2) "11"
}
[5]=>
array(5) {
["sku"]=>
string(2) "17"
["name"]=>
string(31) "DESCIORCHINATOR ARNO 35 SMALTO "
["price"]=>
float(4150)
["cantitate"]=>
string(5) "2.000"
["id_gest"]=>
string(2) "11"
}
[6]=>
array(5) {
["sku"]=>
string(2) "18"
["name"]=>
string(20) "FERMACTIVE SC 500GR "
["price"]=>
float(49)
["cantitate"]=>
string(6) "23.000"
["id_gest"]=>
string(1) "1"
}
[7]=>
array(5) {
["sku"]=>
string(2) "18"
["name"]=>
string(20) "FERMACTIVE SC 500GR "
["price"]=>
float(49)
["cantitate"]=>
string(5) "4.000"
["id_gest"]=>
string(2) "11"
}
[8]=>
array(5) {
["sku"]=>
string(2) "19"
["name"]=>
string(18) "SULFOMAT 80PU 1KG "
["price"]=>
float(7)
["cantitate"]=>
string(6) "72.000"
["id_gest"]=>
string(1) "1"
}
[9]=>
array(5) {
["sku"]=>
string(3) "100"
["name"]=>
string(19) "FERMACTIVE SB 500g "
["price"]=>
float(59)
["cantitate"]=>
string(6) "50.000"
["id_gest"]=>
string(1) "1"
}
}
正如你可以看到有重复元素,如DESCIORCHINATOR ARNO 35 SMALTO,但有cantitate(这意味着:量)不是这样,也id_gest。所以,我想创建一个没有重复数组的数组,但我也想总结重复数的数量,并且还要到id_gest。 这是我的尝试:
for ($i=0; $i < count($result); $i++) {
for ($j = $i+1; $j < count($result)+1; $j++) {
if ($result[$i]['sku'] == $result[$j]['sku']){
$qty = $result[$i]['cantitate'] + $result[$j]['cantitate'];
//echo $qty."<br>";
$id_gest = $result[$i]['id_gest']."%%". $result[$j]['id_gest'];
$list[$i] = $result[$i]['sku']."%%".$result[$i]['name']."%%".$result[$i]['price']."%%".$qty."%%".$id_gest;
//unset($result[$i]);
}else{
$qty = $result[$i]['cantitate'];
$id_gest = $result[$i]['id_gest']."%%";
$list[$i+1] = $result[$i]['sku']."%%".$result[$i]['name']."%%".$result[$i]['price']."%%".$qty."%%".$id_gest;
}
}
}
$ list是新的数组。我究竟做错了什么?
我是否让自己清楚? – Attila 2014-09-02 07:27:25
这是一个很难回答的问题,还是我不能很好地解释我真正想要的? – Attila 2014-09-02 07:34:23
你想合并那些重复的数量和id_gest? – Ghost 2014-09-02 07:38:07