Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> поиск в многомерном массиве функцией in_array 
:(
    Опции темы
bars80080
Дата 23.5.2008, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



честно говоря, я мало понимаю о чём речь, почему не использовать в качестве переменных массив, коли он есть. почему вообще возник такой массив

разные переменные? пожалуйста:
Код

for($i = 0; isset($mv[$i]); $i++) {
for($j = 0; isset($mv[$i][$j]); $j++) {
$a = 'param'.$i.'_'.$j;
$$a = $mv[$i][$j];
}
}

для массива $mv с порядковыми элементами
переменные вида: $param0_0; $param0_1; ... $param3_2; ...
PM MAIL WWW   Вверх
Fortop
Дата 23.5.2008, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 20
Всего: 42



Цитата(supervladislav @  23.5.2008,  16:59 Найти цитируемый пост)
 месте с циклом как это будет выглядеть ,но только так чтоб получить и первый эллемент и второй в раздные переменные  

никак не будет выглядеть - вообще.

Только ручками для каждой отдельной переменной.

Добавлено через 38 секунд
bars80080, ты себе представляешь потом, разбираться в коде, где вот так... формируются переменные? smile


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
supervladislav
Дата 23.5.2008, 22:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 18.5.2006

Репутация: -8
Всего: -9



Цитата(Fortop @ 23.5.2008,  20:23)
Цитата(supervladislav @  23.5.2008,  16:59 Найти цитируемый пост)
 месте с циклом как это будет выглядеть ,но только так чтоб получить и первый эллемент и второй в раздные переменные  

никак не будет выглядеть - вообще.

Только ручками для каждой отдельной переменной.

Добавлено @ 20:23
bars80080, ты себе представляешь потом, разбираться в коде, где вот так... формируются переменные? smile

угости примерчиком 
PM MAIL   Вверх
Fortop
Дата 23.5.2008, 23:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 20
Всего: 42



supervladislav, 
Простой пример, к тебе пришел массив из 5ти элементов.
Ты в цикле его разложил на нумерованные переменные и используешь их где-то в модулях.

Через некоторое время ты добавил на форму/в базу что-то. Элементов стало больше. Или удалил элементов стало меньше. Соответственно изменилось число переменных. Ты ждешь 5ть, а пришло 4.

Т.е. в любой произвольный момент у тебя ошибка может появляться и исчезать.
А ты будешь все мозги себе выворачивать пытаясь ее найти.

Добавлено через 5 минут и 31 секунду
supervladislav, если тебя угораздило затолкнуть разные данные в один массив.
То разбирай его ручками. Т.е. отдельно
Код

$myvar = $array[0][0] 

для каждой переменной. И проверяй предварительно все ли у тебя на месте...

Но мой тебе совет - спили мушку.
Т.е. перепиши код так, чтобы массив у тебя содержал только однородные/связанные данные.


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
supervladislav
Дата 24.5.2008, 18:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 18.5.2006

Репутация: -8
Всего: -9



а как мне её спилить ???эту часть кода писал не я  ,я к сожалению  в некотрых местах неразобрался ,
а там вот такое чудо.это код ввода формы,где чеккобксы появляются или исчезаю ,в зависимости от содержимого массива ttype2 
Код

<? mysql_data_seek($tt1,0);
            while ($datt1=mysql_fetch_array($tt1)) {
                $tt2=mysql_query("SELECT * FROM $T_TTYPE3 WHERE ttype='$datt1[name]' ORDER BY num ASC;"); // тип недвижимости ?>
                <td align=left valign=top><span class=gr>
                <? while($datt2=mysql_fetch_array($tt2)) { ?>
                    <? if($ttype2 == $datt1[name]) { echo "<input onclick='disable_ttype3($datt2[razd]);' type=checkbox name=ttype3[$datt2[razd]][] value='$datt2[name]' style='visibility: visible;'>"; }
                    else { echo "<input onclick='disable_ttype3($datt2[razd]);' type=checkbox name=ttype3[$datt2[razd]][] value='$datt2[name]' style='visibility: hidden;'>"; }
                    echo $datt2[name]."<br>"; ?>
                <? }
                if ($datt1[name] != "Недвижимость для автотранспорта") {
                    echo "<hr>";
                    $tt2=mysql_query("SELECT * FROM $T_TTYPE3 WHERE ttype='Дополнительно' ORDER BY num ASC;");
                    while($datt2=mysql_fetch_array($tt2)) {?>
                        <? if($ttype2 == $datt1[name]) { echo "<input type=checkbox name=name=ttype3[$datt2[razd]][]  value='$datt2[name]' style='visibility: visible;'>"; }
                        else { echo "<input type=checkbox name=ttype3[$datt2[razd]][] value='$datt2[name]' style='visibility: hidden;'>"; }
                        echo $datt2[name]."<br>"; ?>
                <? }
                 } ?>


Это сообщение отредактировал(а) supervladislav - 24.5.2008, 18:40
PM MAIL   Вверх
Fortop
Дата 24.5.2008, 19:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 20
Всего: 42



Цитата(supervladislav @  24.5.2008,  18:39 Найти цитируемый пост)
а как мне её спилить ???эту часть кода писал не я  ,я к сожалению  в некотрых местах неразобрался ,

Разберись.
- какие данные выводятся
- для чего
- как их можно организовать/сгруппировать.




--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
supervladislav
Дата 25.5.2008, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 18.5.2006

Репутация: -8
Всего: -9



блин решил короче я писать всётаки с многомерными ибо другого способа пока я не вижу.
Ребят подскажите пожалуйста как через цикл обратиться к первому  эллементу многомерного массива и записать все данные из него в переменную структура массива вот такая 
Array ( [1] => Array ( [0] => 1 комнатная квартира [1] => 2 комнатная квартира [2] => 3 комнатная квартира [3] => 4-х и более к кв. ) )
вот блин что-то я пока не догоняю ,но наверное так 
Код

$ttype[1]


 где 1 енто то самый массив ,как будет цикл выглядеть ,и лучше сделать енто через while или for
да и скажите наконец как можно это сделать с помощью циклов foreach

Это сообщение отредактировал(а) supervladislav - 25.5.2008, 23:44
PM MAIL   Вверх
Fortop
Дата 25.5.2008, 23:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 20
Всего: 42



supervladislav, 

Код

$a = array(1 => array('1q', 2, '3q', '4q'));
$p = $a[1];
$itog = '';
foreach ($p as $key => $val) {
    $itog .= $val . PHP_EOL;
}

echo $itog;



--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
supervladislav
Дата 26.5.2008, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 18.5.2006

Репутация: -8
Всего: -9



во написал ,всем кто помог спасибо ))))
Fortop тебе особенно спасибо 

Код

$kolvomas3=count($ttype3);
$kolvomas=count($ttype3[0],1);
$kolvomas2=count($ttype3[1],1);
echo $kolvomas3;

if(!empty($ttype3[0])){
if($kolvomas>1){$t_ttype4.="AND ( ";}
foreach($ttype3[0] as $key=>$value1)
{$kol1++;
if($kol1==1 and $kolvomas==1)
{$t_ttype4.="AND dopol='$value1' ";}
elseif($kol1!=$kolvomas)
{$t_ttype4.=" dopol='$value1' OR ";}
elseif($kol1==$kolvomas)
{$t_ttype4.=" dopol='$value1' ";}
}if(count($ttype3[0],1)>1){$t_ttype4.=" )";}

if (!empty($ttype3[1])){
if($kolvomas2>=2){$t_ttype3.="AND ( ";}
{foreach($ttype3[1] as $key2=>$value2)
{$ko22++;
if($ko22==1 and $kolvomas2==1)
{$t_ttype3.="AND ttype3='$value2' ";}
elseif($ko22!=$kolvomas2)
{$t_ttype3.=" ttype3='$value2' OR ";}
elseif($ko22==$kolvomas2){$t_ttype3.=" ttype3='$value2' ";}
}
if($kolvomas2>1){$t_ttype3.=")";}}
}}
elseif(!empty($ttype3[1]) and empty($ttype3[0])){



if($kolvomas2>=2){$t_ttype3.="AND ( ";}
foreach($ttype3[1] as $key2=>$value2)
{$ko22++;
if($ko22==1 and $kolvomas2==1)
{$t_ttype3.="AND ttype3='$value2' ";}
elseif($ko22!=$kolvomas2)
{$t_ttype3.=" ttype3='$value2' OR ";}
elseif($ko22==$kolvomas2){$t_ttype3.=" ttype3='$value2' ";}
}
if($kolvomas2>1){$t_ttype3.=")";}





        
}


Это сообщение отредактировал(а) supervladislav - 26.5.2008, 16:26
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0542 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.