Php 在数组中设置键数组

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

我有一个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,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 '">&pound';
        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;
}