Организация данных в массивах с использованием PHP - PullRequest
0 голосов
/ 06 февраля 2012

По какой-то причине я с трудом пытался расположить свои данные в массивах. Теперь у меня есть база данных, которая содержит заголовок страницы, содержание, идентификатор и дату изменения.

У меня есть функция, которая вызывает другую функцию, которая выполняет запрос и получает все таблицы в этой таблице базы данных. В настоящее время я просто возвращаю заголовки страниц, потому что это легко сделать, но я хотел бы использовать идентификатор и заголовок. Поэтому я подумал об использовании многомерных массивов. В своей жизни я использовал массивы на разных языках, таких как 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 ]

3 голосов
/ 06 февраля 2012

Исходя из того, что я собрал, вы пытаетесь добиться этого:

$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
        )

)

Для доступа к заголовкам / идентификаторам вашей страницы по отдельности:

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

Чтобы перебрать все элементы в массиве:

foreach ($pages AS $page) {
    echo $page['id'];
    echo $page['title'];
}
1 голос
/ 06 февраля 2012

Я делаю это для своих запросов.Это позволяет вам не знать, что возвращается.Это ограничивает не только выбор того, что вы хотите, но я делаю это с моим запросом, если необходимо.

$strQuery = "your query";

$objResult = mysql_query( $strQuery );

$arrResults = array(  );

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

Тогда все, что возвращается через ваш запрос, сохраняется в массиве $arrResults

* 1006.*
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...