Я строю свой собственный массив из массива, предоставленного API, чтобы сделать его немного чище и отформатировать массив так, как мне нужно.
$products
- это массив из API и $licenseVariants
- целевой массив.
foreach ($products as $product) {
$licenseVariants = array();
$variantOptions = array();
foreach ($product['variants'] as $variant) {
// Key = first word from the string
// Value = drop the first word from the string
list($licenseKey, $licenseValue) = explode(' ', $variant['title'], 2);
$variantOptions[strtolower($licenseKey)][] = $licenseValue;
}
$licenseVariants[] = array(
'name' => $product['options'][0]['name'], // 'License'
'heading' => 'Please select the type of license(s) you require',
'variants' => $variantOptions
);
}
Это выводит:
array(1) {
[0]=>
array(3) {
["name"]=>
string(7) "License"
["heading"]=>
string(48) "Please select the type of license(s) you require"
["variants"]=>
array(3) {
["desktop"]=>
array(16) {
[0]=>
string(11) "1–3 users"
[1]=>
string(11) "4–6 users"
[2]=>
string(12) "7–10 users"
[3]=>
string(13) "11–15 users"
[4]=>
string(13) "16–25 users"
[5]=>
string(13) "25–50 users"
}
["web"]=>
array(12) {
[0]=>
string(20) "10k page views/month"
[1]=>
string(20) "25k page views/month"
[2]=>
string(20) "50k page views/month"
[3]=>
string(21) "100k page views/month"
[4]=>
string(21) "250k page views/month"
[5]=>
string(21) "500k page views/month"
}
["app"]=>
array(13) {
[0]=>
string(12) "5k downloads"
[1]=>
string(18) "5k–10k downloads"
[2]=>
string(19) "10k–25k downloads"
[3]=>
string(19) "25k–50k downloads"
[4]=>
string(19) "50–100k downloads"
[5]=>
string(21) "100k–250k downloads"
}
}
}
}
Однако, и мой вопрос, мне нужно добавить другой массив данных под каждый вариант опция вместо массива строк, добавляя $variant['id']
вместе с $licenseValue
.
Быстрый пример ...
array() {
["desktop"]=>
array() {
[0]=>
array()=>
["id"]=>string() "1234512345"
["title"]=>string() "1–3 users"
[1]=>
array()=>
["id"]=>string() "434324234234234"
["title"]=>string() "4–6 users"