2012-05-08 4 views
-2

Привет, я хочу знать, можно ли это сделать без цикла foreach. Я пытаюсь извлечь данные, но он продолжает цикл. я просто хочу запустить его один раз и сохранить значения массива. Пожалуйста, помогите мне в этом. Я новичок в php, поэтому извиняюсь, если это кажется основным. Заранее спасибо.Foreach в альтернативе php?

foreach ($result->titles as $title) 
{ 
    "Title ID" => $title->id, 
    "Title" => $title->title_name, 
    "Created On" => $month_created_on, 
    "Solved On" => $solved_on , 
    "Status" => $title->status, 
} 
+0

Что это за ключи? К какому массиву они принадлежат? – Shoe

+0

и откуда берутся данные? что вы хотите сделать (читать данные или писать?). – Sliq

+0

Ключи используются для идентификации полей, которые я пишу. Я читаю и записываю данные. данные хорошо читаются. Я хочу записать эти данные в другой файл, но проблема в том, что он выдает каждый раз. Я просто хочу, чтобы последние отображались, когда страница обновляется. еще раз спасибо –

ответ

0

Для запуска один раз вам не нужен цикл. Просто войдите в первый элемент в массиве $result->titles. Это предполагает, что массив численно проиндексирован и что первый элемент имеет индекс 0. Если это не так, измените значение [0] для ссылки на первый элемент.

$title_data = array(
    "Title ID" => $result->titles[0]->id, 
    "Title" => $result->titles[0]->title_name, 
    "Created On" => $month_created_on, 
    "Solved On" => $solved_on , 
    "Status" => $result->titles[0]->status, 
); 
0

Когда вы сделаете это:

"Title ID" => $title->id 

Это обозначение ассоциативный массив, в котором вы используете Title ID в качестве ключа и $title->id в качестве значения. Для того, чтобы сделать код у вас есть работа, он должен был бы быть таким:

foreach ($result->titles as $title) 
{ 
    $newValues[] = array("Title ID" => $title->id, 
         "Title" => $title->title_name, 
         "Created On" => $title->month_created_on, 
         "Solved On" => $title->solved_on , 
         "Status" => $title->status 
        ); 
} 

Но все, что действительно является переназначить $result->titles массив как ассоциативный массив с вашими собственными ключами. Я не уверен, что это даже то, что вы хотите.

Чтобы получить первый элемент result->titles сделать что-то вроде этого:

$title_id = $result->titles[0]->id; 
$title_name = $result->titles[0]->title_name; 
// etc... 
0

Да, вы можете вы можете использовать комбинацию while и each добиться того же, что foreach может сделать

Пример

$all = array(); 
while (list (, $data) = each ($result->titles)) { 
    $array = array(); 
    while (list ($key, $value) = each ($data)) { 
     $array [$key] = $value; 
    } 
    $all [] = $array; 
} 
echo "<pre>"; 
print_r ($all); 
Смежные вопросы