使用PHP在数组中排列数据

时间:2012-02-06 15:50:15

标签: php multidimensional-array

出于某种原因,我很难尝试在数组中安排数据。现在我有一个数据库,其中包含页面标题,内容,ID和修改日期。

我有一个函数调用另一个执行查询的函数并获取该数据库表中的所有表。目前我只是返回页面的标题,因为它很容易做,但我想使用id和标题。所以我想到了使用多维数组。我在生活中使用了不同语言的数组,比如C ++,c#,java等等,但是有些理由让PHP的方式让我感到奇怪,我觉得有些东西我没有得到。

所以在这里我循环浏览我的记录并将标题放在一个数组中:

 while ($row = $result->fetch_object())
{
    $pages[$count] = $row->title;
    $count++;
}

return $pages;

会是这样的:

$pages = array() 
{
    ["records"]=>
    array() 
    {
            [$count]=> $row->id
            [$count]=> $row->title
    }
}

这会给我一个类似的输出:

[0]=> 1, homePage
[1]=> 2, page2
[2]=> 3, anotherPage

这是对的吗?有更好的方法吗?

感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

从我收集的内容来看,你正试图实现这个目标:

$pages = array();

while ($row = $result->fetch_object()) {
    // Empty bracket syntax allows indices to be automatically incremented
    $pages[] = array("id" => $row->id, "title" => $row->title);
}

<强>输出

Array
(
    [0] => Array
        (
            [id] => 1
            [title] => homePage
        )

    [1] => Array
        (
            [id] => 2
            [title] => page2
        )

    [2] => Array
        (
            [id] => 3
            [title] => page3
        )

)

单独访问您的页面标题/ ID:

echo $pages[2]['id'];    // 3
echo $pages[2]['title']; // page3

循环遍历数组中的所有元素:

foreach ($pages AS $page) {
    echo $page['id'];
    echo $page['title'];
}

答案 1 :(得分:1)

我这样做是为了我的疑问。这使您无需知道返回的内容。它的确受到限制,不仅要选择你想要的东西,而且如果需要,我会用我的查询来做。

$strQuery = "your query";

$objResult = mysql_query( $strQuery );

$arrResults = array(  );

foreach ( $objResult->result_array(  ) as $arrRecord )
{
   $arrResults[] = $arrRecord;
}

然后通过查询返回的任何内容都存储在$arrResults数组

Array
(
    [0] => Array
    (
        [id] => 1
        [title] => title1
    )

    [1] => Array
    (
        [id] => 2
        [title] => title2
    )

)