[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Обьединение массивов
solib
Есть массивы
PHP
$val['name'][]='Вася';
$val['name'][]='Петя';
$val['name'][]='Саша';

$val['text'][]='Вася крутой';
$val['text'][]='Петя тоже крутой';
$val['text'][]=Саша мега крутой;

с этим всё понятно но потом идёт проверка в бд по имени включён или не включён
и получается следуюшее
PHP
$sql['name'][]='Вася';
$sql['name'][]='Петя';
$sql['name'][]='Саша';

$sql['status'][]='on';
$sql['status'][]='off';
$sql['status'][]=on;

Мне нужно привести к такому виду примерно
PHP
$val['name'][]='Вася';
$val['name'][]='Петя';
$val['name'][]='Саша';

$val['text'][]='Вася крутой';
$val['text'][]='Петя тоже крутой';
$val['text'][]='Саша мега крутой';

$val['status'][]='on';
$val['status'][]='off';
$val['status'][]=on;

могу сделать это такой конструкцией
PHP
for(){
  for(){
  }
}

но не хотелось бы
можно ли отсортировать без цикл в цикле

и вопрос 2
если запрос в бд выглядит примерно так
SELECT * FROM module WHERE name='Вася' and name='Петя' and name='Саша'
майскул отсортирует как ему будет удобно по id к примеру или так как я написал?
Вася
Петя
Саша

Если всё будет идти именно в таком порядке каком я задавал то круто и проблема решена



Спустя 5 минут, 15 секунд (23.10.2009 - 14:29) Michael написал(а):
Чтоб сортировать самому надо указывать в запросе ORDER BY `столбец(ы)`.
Сам MySQL так сам будет все подряд подходящие выдавать.

Про массивы что-то не понял - что надо то.

Спустя 12 минут, 44 секунды (23.10.2009 - 14:42) solib написал(а):
PHP
$text "[!Вася?var1=test&var2=test2!] любит [!пиво?var3=test3&var4=test4!] больше чем <b>Иван</b>";

function 
parser($tamplate){
  
preg_match_all ("#\[!(.*)!\]#iU"$tamplate$fp);
  
$sql="";
  
$fp_count=count($fp[1])-1;
  for(
$i=0$i<=$fp_count;$i++){
            
$fpe=explode("?"$fp[1][$i]);
            
$val['name'][]=strtolower($fpe[0]);
            
$val['val'][]=$fpe[1];
            if(
$i==0){$sql="name='".strtolower($fpe[0])."' "}
            else{
$sql+="and name='".$fpe[0]."' "}
      }

   
$request "SELECT * FROM module WHERE ".$sql." ";
   
$result mysql_query($request);
if (!
mysql_error()) {
  while (
$row mysql_fetch_array($result)) {
     
$sql['name'][]=$row[1];
     
$sql['status'][]=$row[2];
    }
  }

}

$val=parser($text);

вот код

Спустя 11 минут, 17 секунд (23.10.2009 - 14:53) Michael написал(а):
Я бы так не разбрасывал данные. Сделал бы так:
PHP
$i 0;
while () 
// ...выборка
{
    
$i++;
    
$val[$i]["name"] = "Вася";
    
$val[$i]["text"] = "Вася крутой";
    
$val[$i]["status"] = "on";
}

Получится массив записей - все об одном человеке - под одним индексом.


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.