сейчас я делаю вывод массива skills прямым выводом его элементов, но если в массиве элементов оказывается меньше трех - скрипт не работает, а если больше - они тоже не выводятся. как сделать в цикле вывод всех элементов массива skills ?
//JSON
{ "skills":[ {"option":"preferred","level":2,"id":159,"name":"Presentation skills"}, {"option":"preferred","level":1,"id":162,"name":"Language Teaching"}, {"option":"preferred","level":2,"id":161,"name":"Sales"} ]}
//PHP
$url = "http://***";
$content = file_get_contents($url);
$decoded = json_decode($content);
$s1name = $decoded->skills[0]->name;
$s2name = $decoded->skills[1]->name;
$s3name = $decoded->skills[2]->name;
echo sprintf('
<tr>
<td class="headings"> Навыки </td>
<td class="content">%s</td>
</tr>', $s1name);
echo sprintf('
<tr>
<td class="headings"> </td>
<td class="content">%s</td>
</tr>', $s2name);
echo sprintf('
<tr>
<td class="headings"> </td>
<td class="content">%s</td>
</tr>', $s3name);
?>
Для работы с массивом используйте циклы. Либо цикл for, который позволит пройтись во всем элементам массива (их количество можно получить функцией count, которую следует вычислить заранее:
$collectionSize = count($decoded);
for($i = 0; $i < $collectionSize; $i++){
$item = $decoded[$i];
echo sprintf('
<tr>
<td class="headings"> Навыки </td>
<td class="content">%s</td>
</tr>', $item->name);
}
Либо можно использовать цикл foreach, который сам вычисляет длину массива, а также позволяет обращаться к элементу массива через временную переменную.
foreach($decoded as $item){
echo sprintf('
<tr>
<td class="headings"> Навыки </td>
<td class="content">%s</td>
</tr>', $item->name);
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Добрый деньУ меня есть форма с текстовым полем Input В это текстовое поле отправляется значение при нажатии на кнопку
Есть таблица static в ней поля id(int(10)), date(date), datachange(timestamp), name(text), и др