Php 使用数组,比较值并求和
我有一个购物车系统,它保存在数据库中的json数组中。我想选择所有订单,然后选择该数组中的所有产品id,并在页面上显示最畅销的产品 到目前为止,我能够取出阵列,它看起来是这样的Php 使用数组,比较值并求和,php,arrays,Php,Arrays,我有一个购物车系统,它保存在数据库中的json数组中。我想选择所有订单,然后选择该数组中的所有产品id,并在页面上显示最畅销的产品 到目前为止,我能够取出阵列,它看起来是这样的 array(2) { [224]=> array(6) { // data in which I'm not interested } } array(2) { [23]=> array(6) { // data in which I'm no
array(2) {
[224]=> array(6) {
// data in which I'm not interested
}
}
array(2) {
[23]=> array(6) {
// data in which I'm not interested
}
}
array(2) {
[1]=> array(6) {
// data in which I'm not interested
}
}
array(2) {
[1231]=> array(6) {
// data in which I'm not interested
}
}
array(2) {
["id"]=> string(13) "32"
}
Array (
[224] => Array (
// data
)
)
Array (
[23] => Array (
// data
)
)
....
每个数组(2){…}
表示一个顺序。我需要这个[224]
,[23]
。。因为这些是产品ID。我的问题是如何知道在循环中选择什么属性
如果是这样的话
array(2) {
[224]=> array(6) {
// data in which I'm not interested
}
}
array(2) {
[23]=> array(6) {
// data in which I'm not interested
}
}
array(2) {
[1]=> array(6) {
// data in which I'm not interested
}
}
array(2) {
[1231]=> array(6) {
// data in which I'm not interested
}
}
array(2) {
["id"]=> string(13) "32"
}
Array (
[224] => Array (
// data
)
)
Array (
[23] => Array (
// data
)
)
....
我将制作一些类似于$data->id
的东西来获得32
这就是我获得阵列的方式
foreach ($products as $item) {
$data = json_decode($item->details, true);
echo var_dump($data);
}
感谢您的帮助
更新:使用打印($data)代码>它们看起来像这样
array(2) {
[224]=> array(6) {
// data in which I'm not interested
}
}
array(2) {
[23]=> array(6) {
// data in which I'm not interested
}
}
array(2) {
[1]=> array(6) {
// data in which I'm not interested
}
}
array(2) {
[1231]=> array(6) {
// data in which I'm not interested
}
}
array(2) {
["id"]=> string(13) "32"
}
Array (
[224] => Array (
// data
)
)
Array (
[23] => Array (
// data
)
)
....
对我来说,这是完全不同的,因为我不知道列的名称,因此我不能使用array_column()如果$data的键始终是product id,那么在foreach循环中使用php函数key()获取键
foreach($products as$item){
$data=json_decode($item->details,true);
回显键($data)。“”;
//或者创建一个数组来存储所有产品ID
$product_ids[]=密钥($data);
}
回声“;
打印(产品标识);
//统计每个产品id
$product\U ID\U count=数组\U count\U值($product\U ID);
//获取最常用的产品id
echo$most\u used\u product\u id=array\u search(最大($product\u id\u count),$product\u id\u count);
您可以使用数组键,它将列出数组中的所有键。
$products数组将保存您的值224、23等等
使用此$products数组,您可以从原始数组中获取如下值:
我刚补偿了费用,但你明白了。
以上内容与$array[“224”][“cost”]
相同,而不是var\u dump,你能回显print\u r($data)吗?@RavinderReddy我已经用输出更新了我的问题,如果你知道产品id始终是第一个元素,那么展示了如何获取它。尝试使用key()函数。@Martijn这是完全不同的,因为我不知道列的名称。是的,我现在在数组中有它们([0]=>224[1]=>23…
)。既然我现在有了它们,是否可以进行计数并显示最常用的ID?谢谢您的回答,有其他选项很好,但这也显示了输出上的一些其他值。@user5996816是否显示了值?它应该只提供数组的键。你确定你已经按照问题中的方式设置了数组吗?是的,它与问题中的设置完全相同,但我还有其他值。我对它们不感兴趣,试试看这是不是因为重复的名字还是什么$products1234=array\u key($array)
和var dump thar数组和post值数组键不构成值。它从数组中获取密钥。正如你从我的答案中的链接中看到的,它是有效的。你的原始数组一定有问题,否则我不知道是什么。还可以转储您的数组。让我们看看这些值。