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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Объединим пару массивов

Сообщения:  [1-10]   [11-16] 

 
 автор: confirm   (22.06.2012 в 16:11)   письмо автору
 
   для: reimax   (22.06.2012 в 14:40)
 

Если говорить об изначальном, чего вы писали, то:
<?
$ar1 
= array("синий""белый""красный");
$ar2 = array(101520);
$arr '';
foreach(
$ar2 as $v$arr .= implode(' '.$v.','$ar1).' '.$v.',';  
//это одномерный массив, которого вполне хватит для Smarty 
$arr explode(',',rtrim($arr,','));
echo 
'<pre>';
print_r($arr);
//если надо именно 3 х 3, то
$arr array_chunk($arr3);
print_r($arr);

Совсем не обязательно иметь многомерный массив, чтобы построить в Smarty таблицу. Вы можете получать в шаблонизаторе текущую итерацию цикла, и деля ее по модулю 3, знать, что нужно закрыть строку таблицы и открыть новую.

PS. Элементы массива разделяются запятыми, а не точкой с запятой как у вас.

  Ответить  
 
 автор: Lotanaen   (22.06.2012 в 15:26)   письмо автору
 
   для: reimax   (22.06.2012 в 14:40)
 


echo "<table>";
foreach ($arr1 as $key+>$value) {

     echo "<tr>";
     foreach ($arr2 as $key2=>$value2) 
             echo "<td>".$value."-".$value2;

    echo "</tr>";
}
echo "</table>";

  Ответить  
 
 автор: Valick   (22.06.2012 в 15:00)   письмо автору
 
   для: reimax   (22.06.2012 в 13:16)
 

SELECT * FROM
(SELECT param_type FROM `table`) t1,
(SELECT param_name FROM `table`) t2

попробуйте запрос такого вида и посмотрите что получится

  Ответить  
 
 автор: reimax   (22.06.2012 в 14:40)   письмо автору
 
   для: confirm   (22.06.2012 в 14:33)
 

я просто пытаюсь построить квадрат из этих значений. Я пытался решить вопрос с двумя координатами, но, как видно не удалось. Никаких id нет.

  Ответить  
 
 автор: confirm   (22.06.2012 в 14:33)   письмо автору
 
   для: reimax   (22.06.2012 в 14:23)
 

И где они эти 9 значений в том массиве, который вы привели? У вас ведь каждый выложенный массив, это две координаты, итого сколько значений будет, если вложений всего 4? Или вы считаете ID, которые непонятно откуда взялись?

  Ответить  
 
 автор: reimax   (22.06.2012 в 14:23)   письмо автору
 
   для: confirm   (22.06.2012 в 14:12)
 

да, 9 значений, как шахматная доска.

  Ответить  
 
 автор: confirm   (22.06.2012 в 14:12)   письмо автору
 
   для: reimax   (22.06.2012 в 12:50)
 

Ответили да, а на самом деле пишите иное. 3х3 - это девять значений, а у вас массив содержит значений всего 4-х координат.
Собственно, если говорить отвлеченно, то шахматную доску можно представить ни как систему координат, а как нумерованные ячейки. То есть, если говорить о массивах, то это будет одномерный массив, а разбить таковой на части, на вложенные массивы отражающие и координаты и их значение очень просто, как просто и произвести обратное действие.
Это я к тому, что может изначально поступить не так?

Так какой массив в итоге должен быть? Сперва об этом, а потом Smarty.

  Ответить  
 
 автор: reimax   (22.06.2012 в 13:16)   письмо автору
 
   для: Valick   (22.06.2012 в 13:03)
 

да, с базы. структура такая:

type 1 - первый параметр
type 2 - второй параметр

Id
param_type
param_name

  Ответить  
 
 автор: Valick   (22.06.2012 в 13:03)   письмо автору
 
   для: reimax   (22.06.2012 в 12:50)
 

откуда вы получаете этот массив? если из базы то возможно вы движетесь в неправильном направлении

  Ответить  
 
 автор: reimax   (22.06.2012 в 12:50)   письмо автору
 
   для: Lotanaen   (22.06.2012 в 11:54)
 

да, нужна была такая группировка, сейчас массив получился таким:

Array
(
    [0] => Array
        (
            [x] => stdClass Object
                (
                    [Id] => 1
                    [param_type] => 1
                    [param_name] => синий
                )

            [y] => stdClass Object
                (
                    [Id] => 5
                    [param_type] => 2
                    [param_name] => 10 см
                )

        )

    [1] => Array
        (
            [x] => stdClass Object
                (
                    [Id] => 2
                    [param_type] => 1
                    [param_name] => красный
                )

            [y] => stdClass Object
                (
                    [Id] => 6
                    [param_type] => 2
                    [param_name] => 15 см
                )

        )

    [2] => Array
        (
            [x] => stdClass Object
                (
                    [Id] => 3
                    [param_type] => 1
                    [param_name] => черный
                )

            [y] => stdClass Object
                (
                    [Id] => 7
                    [param_type] => 2
                    [param_name] => 20 см
                )

        )

    [3] => Array
        (
            [x] => stdClass Object
                (
                    [Id] => 4
                    [param_type] => 1
                    [param_name] => зеленый
                )

            [y] => stdClass Object
                (
                    [Id] => 8
                    [param_type] => 2
                    [param_name] => 25 см
                )

        )

)


а как перевести их в таблицу? я делаю так:

<table style="border:1px solid red;">
{foreach from=$result item=res}
  {if $res.x->param_type == 1}<tr>{/if}
  {if $res.y->param_type == 2}<td style="border:1px solid red;">{/if}
  
  {$res.x->param_name}
  {$res.y->param_name}
  
  
  {if $res.y->param_type == 2}</td>{/if}
  {if $res.x->param_type == 1}</tr>{/if}
  
{/foreach}
</table>


результат,

синий10 см
красный15 см
черный20 см
зеленый25 см


по строкам

  Ответить  

Сообщения:  [1-10]   [11-16] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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