условная проблема in_array с PHP mySQL - PullRequest
0 голосов
/ 23 мая 2011

У меня есть firePHP, поэтому я точно знаю, что это за переменные, но я не могу понять, почему этот код не меняет его.

Я получаю запрос mySQL $ $ запрос (который при возврате дает[{"type":"2"}]) У меня есть 4 потенциальных типа, и вещи могут быть нескольких типов (например, [{"type":"1"},{"type":"2"}])

Теперь я хочу прочитать эти данные и запустить различные другие функции в зависимости от типа, который у них есть, то есть:если это только тип 2, вызовите функцию TWO, если это тип 1 и 2, вызовите функцию ONE и функцию TWO.Я подумал, что это будет проще всего, если я переместлю все данные в другой массив.

Вот код, который у меня сейчас есть:

$result = array('message'=>false, 'money'=>false, 'glasses'=>false, 'exclamation'=>false);
    if (in_array('1',$query)) {$result['message'] = true;}
    if (in_array('2',$query)) {$result['money'] = true;}
    if (in_array('3',$query)) {$result['glasses']=true;}
    if (in_array('4',$query)) {$result['exclamation']=true;}
    echo json_encode($result);

Это, однако, не обновляет массив $ result (какЯ могу сказать, что все значения $message равны false в firePHP .... Таким образом, я предполагаю, что с моими утверждениями if что-то не так, но что?

Ответы [ 2 ]

1 голос
/ 23 мая 2011

Я не уверен в значении $query, но если это что-то вроде:

array [0 => '{"type":"2"}']

Вы должны будете использовать:

in_array('{"type":"2"}',$query)

как естьзначение вашей переменной.

0 голосов
/ 23 мая 2011

Это потому, что результаты, возвращаемые в $ query, являются массивами массивов, и, следовательно, in_array выполняет поиск только на верхнем уровне, а не на подуровнях? Похоже, что вы хотите рекурсивно искать $ query.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...