#php #arrays
#php #массивы
Вопрос:
У меня есть массив, который генерируется третьей стороной. Это означает, что я должен работать с заданным мне форматом массива. Ниже приведена выдержка массива из var_dump.
{
[0]=> object(stdClass)#3510 (3) {
["privacy"]=> string(1) "0"
["name"]=> string(11) "jumpsuits"
["token"]=> string(12) "PD21B62AIFFM"
}
[1]=> object(stdClass)#3509 (3) {
["privacy"]=> string(1) "1"
["name"]=> string(8) "helmets"
["token"]=> string(12) "PL68C79RKYAP"
}
}
Я не программист php. Но мне нужно найти простой способ в PHP превратить данные массива в приведенном выше формате в таблицу из трех столбцов с заголовками «конфиденциальность», «имя» и «токен».
Если бы я мог просто начать с десяти вопросов о том, почему echo $array['name'][0]
ничего не возвращает, я думаю, я мог бы разобраться с остальным.
Спасибо
Комментарии:
1.
$array[0]->name
.2.
[index]
используется для массивов,->property
используется для объектов.3. Очень благодарен за объяснение. Эта простая строка дала мне нужную перспективу.
Ответ №1:
Это массив объектов, поэтому вы можете зациклить его следующим образом;
<?php
echo '<table>';
echo '<tr>';
echo '<td>';
echo 'Privacy';
echo '</td>';
echo '<td>';
echo 'Name';
echo '</td>';
echo '<td>';
echo 'Token';
echo '</td>';
echo '<tr>';
foreach($data as $row) {
echo '<tr>';
echo '<td>';
echo $row->privacy;
echo '</td>';
echo '<td>';
echo $row->name;
echo '</td>';
echo '<td>';
echo $row->token;
echo '</td>';
echo '<tr>';
}
echo '</table>';
Проверьте это в codepad
http://codepad.org/MhcaKKRP
Комментарии:
1. @user2755309 Если ответ решил вашу проблему, пожалуйста, отметьте как решенную
Ответ №2:
<?php
$array = json_decode(json_encode($object), true); // convert array of object to assoc array
//all array:
var_dump(array_column($array, 'privacy')); //privacy as array
var_dump(array_column($array, 'name')); //name as array
var_dump(array_column($array, 'token')); //token'
//specific data:
$data['privacy'] = array_column($array, 'privacy');
$data['name'] = array_column($array, 'name');
$data['token'] = array_column($array, 'token');
echo $data['name'][0];
//etc
Комментарии:
1. Спасибо вам всем. Ответы помогли мне понять мои недостатки, и ответы решили мою проблему.
2. Если ваш ответ поможет вам, пожалуйста, отметьте как исправленный