我似乎無法繞過這個包裹我的頭。如何使用數量/價格數據在PHP中正確轉換數組?
我給出PHP陣列看起來像這樣:
array (
0 => array (
0 => 50,
1 => 0.80
),
1 => array (
0 => 300,
1 => 0.50
),
2 => array (
0 => 600,
1 => 0.30
),
3 => array (
0 => 1000,
1 => 0.20
),
4 => array (
0 => 4000,
1 => 0.10
)
);
數組的數組,其中內陣列的第一索引表示的量,而第二索引表示的價格。
我想將這些數據導入到我的數據庫中,但是以特定的方式。
我有具體的數量,我想保持的軌道,由下面的數組定義:
array(10,100,500,1000,5000,10000);
然後我想使原來的陣列更微調,以數量和價格,我想看到。因此,在這個特殊的例子,我想一個數組,看起來像這樣:
array (
0 => array (
0 => 100,
1 => 0.80
),
1 => array (
0 => 500,
1 => 0.50
),
2 => array (
0 => 1000,
1 => 0.20
),
3 => array (
0 => 5000,
1 => 0.10
)
);
我的新陣列將僅包含具體的數量指標。 如果原始數組中存在數量,我使用該價格。如果它不存在,我會使用下一個最低數量的價格。如果不存在更低的數量,我不希望在新數組中看到該數量。
我已經能夠做到我想要什麼用下面的代碼大部分:
function getRelativePrices($pricearray) {
$relativeprices = array();
$types = array(10,100,500,1000,5000,10000);
foreach ($types as $q) {
$new_array = array();
foreach ($pricearray as $index => $array) {
if ($q >= $array[0]) {
$new_array = array($q, $array[1]);
}
}
if (sizeof($new_array)) {
$relativeprices[] = $new_array;
}
}
return $relativeprices;
}
上述唯一的問題是,我得到的是我不想要的額外數據。
4 => array (
0 => 10000,
1 => 0.10
)
我不希望這最後一塊,因爲我覺得它多餘的考慮,我知道,5000件的成本:在我提供的例子,我在那個樣子年底獲得一個第五指數/陣列每個0.10美元,所以我可以假設,當「4000」是原始數組中給出的最高數量時,10000將花費相同的價格。
所以我想請求幫助刪除這最後一塊。 另外,我想知道是否有人有更好的編碼方法來轉換這個數組。
您應該將陣列更改爲'陣列( 0 =>數組( '量'=> 50, '價格'=> 0.80 )' 所以它更容易看到,但這真的取決於你 – nine7ySix
好吧,我使用REST調用,它給了我這種格式的數組。因爲我想顯示原始數組和重新格式化的HTML表格,所以我可能不會更改重新格式化數組的結構。但是,是的,我通常喜歡在可以的時候使用鑰匙。 – Justin
我想你需要遍歷給定的數組,然後檢查它與類型數組。查看我的答案,找出可能的解決方案 – mason81