-1

我的问题是如何在循环遍历它们时将数组值粘贴到变量中。

我正在使用它来获取我的数组 - 我需要查询中的两个值。

$categ = array();   
while ($row = mysql_fetch_array($result)) {
    array_push($categ, array(
        'cat' => $row["CategoryName"],
        'course' => $row["Course"]
    ));
}

这里有重复,所以我使用以下来获得一个唯一的数组:

$categ = array_map("unserialize", array_unique(array_map("serialize", $categ)));

这给出了以下输出:

Array (
  [0] => Array ( [cat] => Dogs [course] => Kempton Park )
  [2] => Array ( [cat] => Dogs [course] => Lingfield Park )
  [4] => Array ( [cat] => Gallops [course] => Wincanton )
) 

然后我想遍历这个数组,将 [cat] 和 [course] 的值分配给两个变量:$cat$course

我已经尝试了各种方法,但它不起作用:下面给出了一个语法错误 - 不知道为什么?

foreach ($categ as list($cat2, $course2)){
    require ('C04_by_Account_by_Bet.php');
};
4

3 回答 3

0

你不能像那样使用list()foreach你需要这样做:

foreach ($categ as $value){
    list($cat2, $course2) = $value;
}

编辑:你可以foreach ($categ as list($cat2, $course2)){PHP 5.5+

于 2013-03-15T18:37:39.460 回答
0
$categ = array();   
while ($row = mysql_fetch_array($result)) {
    $obj = new stdClass();
    $obj->cat = $row["CategoryName"];
    $obj->course = $row["Course"];
    $categ[] = $obj;
}

foreach($categ as $thing)
{
    $thing->cat;
    $thing->course;
}

我会推荐这样的东西。

编辑:甚至更好

$categ = array();   
while ($obj = mysql_fetch_object($result)) {
    $categ[] = $obj;
}

foreach($categ as $thing)
{
    $thing->cat;
    $thing->course;
}
于 2013-03-15T18:52:11.853 回答
0

我们也可以这样做:

$categ = array();   
while ($row = mysql_fetch_array($result)) {
    $categ[$row["CategoryName"]][] = $row["Course"];
}

数组将是

Array (
  [Dogs] => Array ( Kempton Park, Lingfield Park ),
  [Gallops] => Array ( Wincanton )
) 

那么你可以这样做:

foreach($categ as $category => $courses) {
   $courses = array_unique($courses);
   foreach($courses as $course) {
      echo $category . ' : ' . $course; //or any other action
   }
}
于 2013-03-15T19:07:36.190 回答