在数组中设置键数组

时间:2015-02-20 11:34:02

标签: 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,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>

这很棒我将所有图像分组,因此只有1个显示,列表中项目旁边的所有价格。我想做的是按照从低到高的顺序显示每张图片旁边的价格。

所以我试过这个

$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;
}

所以我的问题是如何按顺序安排价格?

很抱歉,如果我的问题很愚蠢或格式不正确。如果需要,我很乐意详细解释。毕竟我只是人类...

0 个答案:

没有答案