【问题标题】:PHP Store multiple values in keyPHP在键中存储多个值
【发布时间】:2015-09-05 20:35:15
【问题描述】:

是否可以在一个键中存储多个值?

我遍历我的数据库中具有以下属性的所有项目:

category, itemname and itemurl

现在我想按类别对所有项目进行排序,这意味着一些项目具有相同的类别,我希望它们一起出现在我的对象中,应该如下所示:

Items [
    category1 => item1[], item2[], item3[]
    category2 => item4[], item5[]
    category3 => item6[]
]

感谢您的帮助!

解决方案: 您可以将值存储在匿名数组中

while ( $stmt->fetch()  ) {

    $tempArray = [
        'xxx' => xxx,
        'yyy' => yyy,
        'zzz' => zzz
    ];
    Items[category][ ] = $tempArray;
}

【问题讨论】:

  • 兄弟,不清楚...

标签: php arrays loops object


【解决方案1】:

我可能没有正确理解这个问题,但是在 php 中每个键存储多个值非常容易

$items[0]['category'] = "Category 1"
$items[0]['itemname'] = "Item Numero Uno"
$items[0]['itemrul'] = "myfavoriteitem.com"

$items[1]['category'] = // . . . you get it

按类别重新组织它们,应该相当容易

$categorized = array();

foreach ($items as $item) {
    $categorized[$item['category']][] = $item; //append item to the category
}

【讨论】:

  • 感谢帮助我自己找到的,看看我上面的解决方案:)
【解决方案2】:

我不确定我是否完全理解你,但如果我对你想要达到的目标是正确的:

只需使用一个数组来存储它们(您不能对多个对象使用一键,但可以对一个对象使用一键,并且一个对象可以存储许多其他对象)

Items [
    category1 => array(item1[], item2[], item3[]),
    category2 => array(item4[], item5[]),
    category3 => array(item6[])),
]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-13
    • 2019-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    相关资源
    最近更新 更多