[英]Fill array with dynamic content in PHP
我需要用產品的動態列表填充一個數組。 為此,我使用以下代碼:
$list_array = array(
$products[] = array(
'SKU' => '0001',
'Title' => 'Bread',
'Quantity' => '',
),
$products[] = array(
'SKU' => '0002',
'Title' => 'Butter',
'Quantity' => '',
)
);
return $list_array;
如果我知道陣列中的每個產品,它就可以正常工作。 但在我的用例中,我不知道陣列中有哪些產品。
所以我想用動態數據填充數組。
我想出了這樣的事情:
$products = get_posts( 'numberposts=-1&post_status=publish&post_type=product' );
foreach ( $products as $product ) {
$products[] = array(
'SKU' => $product->id,
'Title' => $product->post_title,
'Quantity' => '',
),
}
return $products;
我知道數組確實有問題。 但我無法弄清楚它是什么。
您提交的代碼無法使用。 短語法$a[] =...
是將 append 數據轉入$a
數組,例如:
$a = [];
$a[] = 1;
$a[] = 2;
// $a = [1, 2]
您還可以使用map
function 以更有效的方式進行操作:
function reduce($product)
{
return array(
'SKU' => $product->id,
'Title' => $product->post_title,
'Quantity' => '',
);
}
return array_map('reduce', $products);
它將執行 function reduce
和替換數組中每個元素的值。 在此處完成文檔: https://www.php.net/manual/en/function.array-map.php
您的問題是您正在覆蓋循環內循環的$products
數組。 更改循環中變量的名稱以解決該問題:
$list_array = array();
foreach ( $products as $product ) {
$list_array[] = array(
'SKU' => $product->id,
'Title' => $product->post_title,
'Quantity' => ''
);
}
return $list_array;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.