У меня есть ошибка, которую я не могу решить.
Вот код
$this->stmt = $this->handle->prepare("SELECT * FROM tb_ph WHERE totalprofit = 0 AND status = '1' AND checks = ''");
$var = $this->stmt->fetchAll();
$var
возвращает многомерный массив, который я хотел бы перебрать, чтобы получить их соответствующие идентификаторы и имена пользователей. Теперь проблема в том, что если я это сделаю
foreach($var as $key => $value){
$id = $value['id'];
$username = $value['username'];
$phone = $value['phone'];
}
Я получаю уведомление: ошибка преобразования массива в строку.
var_dump($var)
дает
Array
(
[0] => Array
(
[id] => 3
[0] => 3
[username] => rose
[1] => rose
[phone] => +2782345578952
[2] => +2782345578952
)
[1] => Array
(
[id] => 4
[0] => 4
[username] => josh
[1] => rose
[phone] => +0182345578952
[2] => +0182345578952
)
)
Как сделать так, чтобы цикл получал только идентификатор, имя пользователя и телефон каждый раз для двух возвращаемых результатов?
1 ответ
Посмотрите на этот бит очень внимательно:
Array
(
[0] => Array
(
Он показывает вам, что у вас есть массив массивов, поэтому то, что вы получаете в вашем foreach, - это еще один массив
foreach($var as $arr) {
/* here $arr is an array in calling print on it will produce the warning you have already seen but ...*/
print $arr[$id];
}
Потому что здесь вы печатаете только один элемент массива. Аналогично выведите $ arr ['имя пользователя']
Похожие вопросы
Новые вопросы
php
PHP — это широко используемый язык сценариев общего назначения с открытым исходным кодом, мультипарадигмальный, динамически типизированный и интерпретируемый, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.
foreach($var ...
. Вы показываете толькоvar_dump($var)
, а поскольку$var = $this->stmt->fetchAll();
также не создаетNotice
, вы не показываете попытку кодаforeach($var ...
.