2015-05-15 5 views
0

Я пытаюсь преобразовать свой массив в строку запроса. Возможно ты можешь помочь мне.php | Преобразовать массив в FIND_IN_SET

Мой массив выглядит следующим образом:

Array 
(
    [3] => Array 
     (
      [0] => 7 
      [1] => 13 
      [2] => 1 
     ) 

    [4] => Array 
     (
      [0] => 14 
      [1] => 2 
     ) 

) 

И я пытаюсь преобразовать это в:

(FIND_IN_SET('13', vals) || FIND_IN_SET('7', vals) || FIND_IN_SET('1', vals)) AND (FIND_IN_SET('14', vals) || FIND_IN_SET('2', vals)) 

Как я могу это сделать? Благодаря!

+1

Как вы пытаетесь построить этот запрос? Какой API вы используете? – Phylogenesis

+0

^Кроме того; Вы пробовали что-то, чтобы добраться до своей цели? – Rizier123

+0

То, что я пробовал, не сработало ... – user889349

ответ

1

Это может вам помочь.

[[email protected] tmp]$ cat test.php 
<?php 

$array = array(array(7,13,1),array(14,2)); 

function convert_to_string($array) 
{ 
    return implode(" AND ",array_map(function($v){ return "(".implode(" || ", array_map(function($q){ return sprintf("FIND_IN_SET('%s', vals)",$q);},array_values($v))).")";},array_values($array)));  
} 

echo convert_to_string($array); 

?> 

Выход

[[email protected] tmp]$ php test.php 
(FIND_IN_SET('7', vals) || FIND_IN_SET('13', vals) || FIND_IN_SET('1', vals)) AND (FIND_IN_SET('14', vals) || FIND_IN_SET('2', vals)) 
+0

Большое спасибо! – user889349

+0

@ user889349 Добро пожаловать, рад узнать, что это вам помогло. –

+0

Имейте в виду, что если какое-либо из значений в массиве предоставляется пользователем, то это подходит для SQL-инъекции. – Phylogenesis

Смежные вопросы