首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用PHP中的动态内容填充数组

问用PHP中的动态内容填充数组
EN

Stack Overflow用户
提问于 2020-04-08 15:21:52
回答 2查看 44关注 0票数 1

我需要用一个动态的产品列表填充一个数组。为此,我使用以下代码:

代码语言:javascript
复制
$list_array = array(

        $products[] = array(
            'SKU' => '0001',
            'Title' => 'Bread',
            'Quantity' => '',
        ),

        $products[] = array(
            'SKU' => '0002',
            'Title' => 'Butter',
            'Quantity' => '',
        )

    );

return $list_array;

如果我知道数组中的每一个产品,它就会工作得很好。但在我的用例中,我不知道阵列中有哪些产品。

所以我想用动态数据填充数组。

我想出了一些东西:

代码语言:javascript
复制
$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;

我知道数组确实有问题。但我想不出那是什么。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-08 15:29:30

您的问题是覆盖了在循环中循环的$products数组。更改循环中变量的名称以修复此问题:

代码语言:javascript
复制
$list_array = array();
foreach ( $products as $product ) {
    $list_array[] = array(
        'SKU'       => $product->id,
        'Title'     => $product->post_title,
        'Quantity'  => ''
    );
}
return $list_array;
票数 1
EN

Stack Overflow用户

发布于 2020-04-08 15:32:50

您提交的代码无法工作。简短的语法$a[] = ...是向$a数组追加数据,例如:

代码语言:javascript
复制
$a = [];
$a[] = 1;
$a[] = 2;
// $a = [1, 2]

您还可以使用map函数以一种更有效的方式完成此操作:

代码语言:javascript
复制
function reduce($product)
{
    return array(
        'SKU'       => $product->id,
        'Title'     => $product->post_title,
        'Quantity'  => '',
    );
}

return array_map('reduce', $products);

它将执行函数reduce并替换数组中每个元素的值。请在此处完成文档:https://www.php.net/manual/en/function.array-map.php

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61095296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档