从PHP中的多维数组中回应选择性数据(行)

时间:2012-04-24 15:19:41

标签: php arrays csv selection

我有一个来自.csv文件的数组。这些来自房地产计划。在第二列中,我有“待售”字样,在第三列中,“租赁”字样仅在相关行中显示。否则该单元格为空。我想仅显示一个列表行,例如Sale。当然,如果用户点击其中一行中的链接,则会显示相应的页面。 我似乎无法定位列中的文本,我不能允许在整个数组中使用For Sale字样,因为它们可能出现在另一列中(例如说明)。 我试过这个,但无济于事。

/* The array is $arrCSV */
foreach($arrCSV as $book) {
    if($book[1] === For Sale) {
      echo '<div>';
    }
    echo '<div>';
    echo $book[0]. '<br>';
    echo $book[1]. '<br>';
    echo $book[2]. '<br>';
    echo $book[3]. '<br>';
    echo $book[6]. '<br><br><br>';
    echo '</div>';
}

我也试过这个:

foreach($arrCSV as $key => $book) {
    if($book['1'] == 'For Sale') {
      echo '<div>';
    }
    echo '<div>';
    echo $book[0]. '<br>';
    echo $book[1]. '<br>';
    echo $book[2]. '<br>';
    echo $book[3]. '<br>';
    echo $book[6]. '<br><br><br>';
    echo '</div>';
}

2 个答案:

答案 0 :(得分:0)

你的意思是:

foreach($arrCSV as $key => $book) {
    if($book['1'] == 'For Sale') {
        echo '<div></div>';
    }else{
        echo '<div>';
        echo $book[0]. '<br>';
        echo $book[1]. '<br>';
        echo $book[2]. '<br>';
        echo $book[3]. '<br>';
        echo $book[6]. '<br><br><br>';
        echo '</div>';
    }
}

答案 1 :(得分:0)

我在这里找到了一个解决方案: PHP: Taking Array (CSV) And Intelligently Returning Information

$searchCity = 'For Sale'; //or whatever you are looking for
$file = file_get_contents('annonces.csv');
$results = array();
$lines = explode("\n",$file); 
//use any line delim as the 1st param,
//im deciding on \n but idk how your file is encoded

foreach($lines as $line){
//split the line
$col = explode(";",$line);
//and you know city is the 3rd element
if(trim($col[1]) == $searchCity){
     $results[] = $col;
}
}

然后:

foreach($results as $Rockband)
{
echo "<tr>";
foreach($Rockband as $item)
{
echo "<td>$item</td>";
}
echo "</tr>";
}

你可以看到我正在学习。事实证明,通过制定问题,显示了一系列类似的帖子,这比使用谷歌更快更容易。感谢。