2016-09-29 3 views
0

У меня есть массив, как один ниже:PHP массив в выпуске массива

{ 
    "quantity":"1", 
    "product_id":"41", 
    "option[232]":"28", 
    "option[231][]":"25" 
} 

я бегу выше в цикле Еогеасп как $ ключ => $ значение. Но когда я пытаюсь объединить их в строку, я получаю ошибку Array to String.

Например: $result = $this->db->query("SELECT a.quantity quantity, b.name optionname FROM " . DB_PREFIX ."product_option_value a, " . DB_PREFIX ."option_value_description b WHERE a.option_value_id = b.option_value_id AND a.product_option_id=".$key." AND a.product_option_value_id=".$value." AND a.product_id=".$product_info['product_id']." AND a.subtract=1");

Когда я удалить последнюю запись из "option[231][]":"25", он отлично работает. Есть ли в любом случае я могу преобразовать "option[231][]" в "option[231]".

Я отправляю сообщение на php-страницу через json.

Благодаря

+0

, пожалуйста, показать весь ваш код, например. заявление о конкатенации – Craig

+0

Является ли это JSON? Где вы это зацикливаете? Пожалуйста, покажите весь код. –

+0

, ваш многодисковый массив всегда сохраняет желаемое значение с использованием того же ключа, например. это всегда опция [231] [0] = 25? Если нет, то откуда вы знаете, где заданное значение хранится в многомерном массиве? – Craig

ответ

1

Просто используйте функцию print_r для преобразования несколько тусклого массива, например,

option[231] = print_r(option[231], TRUE); 

или, если вам не нравится полученный синтаксис, гнездо петля Еогеасп в рамках существующего цикла, который выполняет Еогеасп, когда переменная является массивом, например,

if(is_array(option[$x])){ 
    $y = ''; 
    foreach(option[$x] as $value){ 
    $y .= $value; 
    } 
    option[$x] = $y; 
} 
Смежные вопросы