2015-07-15 2 views
0

Я новичок в PHP. Так что медведь со мной. Мне нужно взять песни из db. Я не знаю, как инициализировать ассоциированный массив в цикле for с использованием keyValuePair., а также добавить к нему атрибут статуса.Как создать json из ассоциированного массива

Что я хочу

{ 
     "status" : "true" ,// It tells whether day available or not 
     "data": [ 
      { 
      "name": "Joe Bloggs", 
      "id": "203403465" 
      }, 
      { 
      "name": "Fred Bloggs", 
      "id": "254706567" 
      }, 
      { 
      "name": "Barny Rubble", 
      "id": "453363843" 
      }, 
      { 
      "name": "Homer Simpson", 
      "id": "263508546" 
      } 
     ] 
    } 

Мой код

$html = file_get_html('http://1stfold.com/taskbox/Farrukh/Zare/'); 

$output = array();// how to initialze it in for loop with keyValue pair 

// Find all "A" tags and print their HREFs 
foreach($html->find('.branded-page-v2-body a') as $e) 
{ 
    if (0 === strpos($e->href, '/watch?v')) 
    { 
     $output[] = $e->href . '<br>'; 

     echo $e->href . '<br>'; 
    } 
} 
echo json_encode($output); 

Заранее спасибо.

+0

В рамках цикла просто использовать '$ выходной [$ ключ] = $ значение;'. Разве это не то, что вы имеете в виду? Не – DanielGibbs

+0

Нет возвращает меня { /смотреть v = 7Roa3aKnFoE: "/ смотреть v = 7Roa3aKnFoE?", /смотреть v = L3fbL4j48Ew: "?/смотреть v = L3fbL4j48Ew" } –

+1

Да, потому что нет ничего в вашем коде который получает имя или идентификатор от чего-либо. – DanielGibbs

ответ

1

Вы можете добавить массив в $ выходной массив, просто изменяя это:

$output[] = $e->href . '<br>'; 

Для этого:

$output['data'][] = array('name' => $name_value, 'id' => $id_value); 

Это подтолкнет массивы в $ выходной [ «данных» ].

Вы должны добавить "статус" KeyValuePair перед циклом

+0

Плюс 1 за помощью, и после форвок я добавляю $ output ['status'] = "true"; –

Смежные вопросы