Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Массив и правильная расстановка полей
 
 автор: dirol   (18.03.2011 в 10:51)   письмо автору
 
 

есть масив цветов

Array
(
    [0] => Array
        (
            [0] => Полированная
            [1] => Матовая
            [2] => Зеркальная
            [3] => Декор
        )

    [1] => Array
        (
            [0] => Алюметаллик
            [1] => Песочный
            [2] => Коньяк
            [3] => Серый камень
            [4] => Серый шелк
            [5] => Шампань
            [6] => Антрацит
            [7] => Жасмин
            [8] => Кофе
            [9] => Белый
        )

)


он может быть и одинарный и вообще тройной

и вот так выводится



 for ($i = 0; $i < count($colorss[0]); $i++) {
 $colorse = explode(",", $colors);
 $sel = "";
foreach ($colorse as $val) {
        if ($colorss[0][$i] == $val) $sel = "checked";
        }
        echo"<td ><input type=\"checkbox\" name=\"colors[]\" value=\"".$colorss[0][$i]."\" $sel>".$colorsn[0][$i]."<br /><img src=\"uploads/color/".$colorss[0][$i]."\" width=\"100\"></td>";
         if ($a == 4) {
                echo "</tr><tr>";
                $a = 0;
            } else {
                $a++;
            }


    }


щас выводятся только $colorss[0] первый масив соответсвено а как сделать чтобы и второй тоже ниже выводился подскажите пожалуйста

  Ответить  
 
 автор: dirol   (18.03.2011 в 11:05)   письмо автору
 
   для: dirol   (18.03.2011 в 10:51)
 

так тут сам разобрался



 $a = 0;
   for ($p = 0; $p < count($titles); $p++) {
     for ($i = 0; $i < count($colorss[$p]); $i++) {
      $colorse = explode(",", $colors);
      $sel = "";
      foreach ($colorse as $val) {
        if ($colorss[$p][$i] == $val) $sel = "checked";
        }
        echo"<td ><input type=\"checkbox\" name=\"colors[]\" value=\"".$colorss[$p][$i]."\" $sel>".$colorsn[$p][$i]."<br /><img src=\"uploads/color/blanco/".$colorss[$p][$i]."\" width=\"100\"></td>";

           if ($a == 4) {
                echo "</tr><tr>";
                $a = 0;
            } else {
                $a++;
            }


    }

   }



подскажите теперь как сделать перенос вниз. щас переносятся если есть 5 цветов то в низ идет перенос.

вот щас в первом масиве всего 4 цвета а в другом 10 . как впервом масиве перенести вниз другой масив цветов

  Ответить  
 
 автор: psychomc   (18.03.2011 в 11:09)   письмо автору
 
   для: dirol   (18.03.2011 в 10:51)
 

это уже рекурсия. в самом простом виде так

<?php
function print_arr($arr) {
    if (
is_array($arr)) {
        foreach (
$arr as $a) {
            
print_arr($a);
        }
    } else {
        echo 
$arr."<br/>";
    }
}

$arr = array(
             
=> 'Полированная',
             
=> 'Матовая',
             
=> 'Зеркальная',
             
=> 'Декор',
             
=> array(
                        
1=>'Декор11',
                        
2=>'Декор12',
                        
3=>'Декор13',
                        
4=>array(
                                 
1=>'Декор21',
                                 
2=>'Декор22',
                                 
3=>'Декор23'
                                 
)
                       ),
             
=> 'Алюметаллик',
             
=> 'Белый'
            
);

print_arr($arr);       

  Ответить  
 
 автор: dirol   (18.03.2011 в 11:22)   письмо автору
 
   для: psychomc   (18.03.2011 в 11:09)
 

а как сделать теперь перенос скажем по 4 шткуки в ряд и чтобы каждый новый масив начинался тоже с переноса?

  Ответить  
 
 автор: psychomc   (18.03.2011 в 11:43)   письмо автору
 
   для: dirol   (18.03.2011 в 11:22)
 


<?php 
function print_arr($arr) { 
    if (
is_array($arr)) { 
        echo 
'<br/>------новый массив------<br/><br/>';
        
$i 0;
        foreach (
$arr as $a) { 
            
print_arr($a); 
            if (++
$i == 4) echo '--перенос после 4--<br/>';
        } 
    } else { 
        echo 
$arr."<br/>"
    } 


$arr = array( 
             
=> 'Полированная'
             
=> 'Матовая'
             
=> 'Зеркальная'
             
=> 'Какая-то'
             
=> 'Декор'
             
=> array( 
                        
1=>'Декор11'
                        
2=>'Декор12'
                        
3=>'Декор13'
                        
4=>'Декор14'
                        
5=>'Декор15',
                        
6=>array( 
                                 
1=>'Декор21'
                                 
2=>'Декор22'
                                 
3=>'Декор23' 
                                 

                       ), 
             
=> 'Алюметаллик'
             
=> 'Белый' 
            
); 

print_arr($arr);
?>


экспериментируйте

  Ответить  
 
 автор: dirol   (18.03.2011 в 12:24)   письмо автору
 
   для: psychomc   (18.03.2011 в 11:43)
 

тут разобрался спасибо. а если усложнить еще есть масив такойже как первый идет но там названия файлов как их в данном примеру подставить?



$arr2 = array(  
             0 => 'PF4VF98.jpg',  
             1 => 'TmZ4kw6.jpg',  
             3 => 'RT0Y4W3.jpg',  
             4 => 'RT0Y4W3.jpg',  
             5 => 'RT0Y4W3.jpg',  
             6 => array(  
                        1=>'PF4VF98.jpg',  
                        2=>'RT0Y4W3.jpg',  
                        3=>'RT0Y4W3.jpg',  
                        4=>'RT0Y4W3.jpg',  
                        5=>'RT0Y4W3.jpg', 
                        6=>array(  
                                 1=>'RT0Y4W3.jpg',  
                                 2=>'RT0Y4W3.jpg',  
                                 3=>'RT0Y4W3.jpg'  
                                 )  
                       ),  
             7 => 'RT0Y4W3.jpg',  
             8 => 'RT0Y4W3.jpg'  
            ); 


чтобы выводились в одном месте название-файл

  Ответить  
 
 автор: psychomc   (18.03.2011 в 12:37)   письмо автору
 
   для: dirol   (18.03.2011 в 12:24)
 

например как-то так.
<?php
$arr 
= array(  
                      
=> array'PF4VF98.jpg''Полированная'),
                      
//.....
                      
=> array(   
                                        
1=>array( 'Декор11''PF4VF98.jpg')
                                         
2=>array( 'Декор11''PF4VF98.jpg')
                                         
//....
                                         

                   );

только теперь попытайтесь переписать функцию под такой массив. направление я вам указал

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования