Php 在数组中设置键数组
我有一个CSV文件,我从一个数组中获取数据,我正在尝试对数组进行排序,以便在页面上显示内容。csv就是这样来的Php 在数组中设置键数组,php,arrays,Php,Arrays,我有一个CSV文件,我从一个数组中获取数据,我正在尝试对数组进行排序,以便在页面上显示内容。csv就是这样来的 image,price,product_id,link,description,title img.png,12.00,1000,www.site.com,some text,title text img.png,10.00,1001,www.site.com,some text,title text img2.png,10.00,1002,www.site.com,s
image,price,product_id,link,description,title
img.png,12.00,1000,www.site.com,some text,title text
img.png,10.00,1001,www.site.com,some text,title text
img2.png,10.00,1002,www.site.com,some text,title text
到目前为止,我已经成功地将第一个数组按其图像分组。我不知道该怎么做的是将价格分组到一组图片中
首先,我有这个
$result = array();
while (!gzeof($zd)) {
$data = fgetcsv($zd, 1000, ","); //get csv data line by line
$key = array_shift($data); //set image as array key
if (!isset($result[$key])) {
$result[$key] = array();
}
$result[$key][] = $data;
}
为了显示数据,我这样做了
foreach ($result as $image => $entries) {
$src = $image;
list($width, $height, $type, $attr) = @getimagesize($src); //test img url
//tidy text for display
$work = substr($image, strrpos($image, '/') + 1);
$work2 = explode(".", $work);
$phone_name = $work2[0];
$phone_name = str_replace("-", " ", $phone_name);
$phone_name = str_replace("_", " ", $phone_name);
?>
<table><tr><td width="30%" valign="top"><?php
echo '<h4>' . $phone_name . '</h4>';
echo '<img src="' . $image . '" alt="" class="img-thumbnail"/><br> ' . "\n";
?>
</td><td><ul class="f_nav list-unstyled">
<?php
///display prices for each image
foreach ($entries as $i => $entry) {
$id = "{$entry[0]}\n";
?>
<?php
echo ' <li><a class="btn btn-default btn-xs active" role="button" title="';
echo "{$entry[5]}\n";
echo '">£';
echo "{$entry[4]}\n";
echo '</a>';
echo '</li>';
?>
<?php
}
?>
</ul>
<?php
echo "</td></tr></table><BR><BR>\n";
}
?>
</td></tr></table>
所以我的问题是,我该如何按顺序安排价格
对不起,如果我的问题很愚蠢或者格式不正确。如果需要的话,我很乐意详细解释。毕竟我只是一个人…Argh,我的眼睛受伤了。缩进太糟糕了。希望我的编辑能帮助你@Cthulhu:@OP在将来请你缩进你的代码以帮助可读性。我们不希望重新格式化您的代码以帮助您解决问题。一个好的站点可以使用,但大多数(如果不是全部的话)IDE都有一个格式化工具。如果你采用一个好的缩进,它也会帮助你的发展technique@OP:如果我没弄错,您希望按价格对数组进行排序,然后显示它。如果是这样的话,你会想看看这个关于按特定键排序数组的评论。感谢hd和Eddi在阅读了排序函数之后,我已经完成了所有的工作。我所需要的只是朝着正确的方向轻推。我将阅读代码格式的高清和改善我自己的工作谢谢
$result = array();
while (!gzeof($zd)) {
$data = fgetcsv($zd, 1000, ",");
$key = array_shift($data);
if (!isset($result[$key])) {
$result[$key] = array();
}
$result[$key][] = $data;
$keyprice = array_shift($data);
if (!isset($results[$key][$keyprice])) {
$results[$key][$keyprice] = array();
}
$results[$key][$keyprice][] = $data;
}