Php 从组数组读取
我使用此代码将上述数据显示如下:Php 从组数组读取,php,arrays,offset,Php,Arrays,Offset,我使用此代码将上述数据显示如下: +---------------+-----------------+ | Type | Price | +---------------+-----------------+ | Music | 19.99 | | Music | 3.99 | | Music | 21.55 | | Toy |
+---------------+-----------------+
| Type | Price |
+---------------+-----------------+
| Music | 19.99 |
| Music | 3.99 |
| Music | 21.55 |
| Toy | 89.95 |
| Toy | 3.99 |
| Phones | 99.99 |
| Phones | 89.99 |
+---------------+-----------------+
结果:
// Get the sum
$group = array();
foreach($rows as $r){
$group[$r->type] = $group[$r->Type] + $r->Price;
}
// Display
foreach($group as $type=>$price){
echo "Type:".$type." Price: ".$price;
}
我的问题是如何从第二条记录开始显示数组(
$group
)中的数据,以及如何仅显示数组中的一条记录。尝试使用数组_切片()
现在像以前一样迭代$new\u group
。尝试array\u shift($group)
,然后是foreach()
从:
array_shift()将数组的第一个值移位并返回,
将阵列缩短一个元素,并向下移动所有元素。全部的
数字数组键将被修改为从零开始计数
而文字键不会被触摸
如果内存不是问题(数组不是很大),请使用array\u slice
as。但是,如果这是一个问题,您将希望通过跳过第一个元素来避免重复所有数据:
//this will create new array without first element
$new_group = array_slice($group, 1);
我使用的是这种方法,而不是直接的数值索引,因为不能保证索引是无间隙的。也可以使用内部指针函数,例如,但在迭代器接口的这个时代,这些函数已经不受欢迎了
以及如何仅显示阵列中的一条记录
这取决于您希望通过哪些标准访问它。如果要按类型执行,您可以简单地执行以下操作:
$first = true;
foreach ($group as $type=>$price) {
if ($first) {
$first = false;
continue;
}
echo "Type:", $type, " Price: ", $price;
}
回答得很好。我打算编辑它,将偏移量设置为0,长度设置为1,直到我意识到该方法返回提取的值。谢谢Peter,它工作起来很有魅力。非常感谢你的意见,伙计。我对这方面还不太熟悉,不知道如何实施你的方法。尽管如此,谢谢。我相信它将来会有所帮助,而且肯定会帮助其他人。
$first = true;
foreach ($group as $type=>$price) {
if ($first) {
$first = false;
continue;
}
echo "Type:", $type, " Price: ", $price;
}
echo $group['Music'];