[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Операции с многомерным массивом
dievalex
Добрый вечер всем.

новичок, пытаюсь учить php. есть задача удалить строку где лежит определенная переменная.
вот код

<?php

$catalog_main["0"] = array("id"=>"1", "name"=>"Иванов И.И.", "age"=>"25", "email"=>"ivanov@mail.ru");
$catalog_main["1"] = array("id"=>"2", "name"=>"Петров П.П.", "age"=>"34", "email"=>"petrov@mail.ru");
$catalog_main["2"] = array("id"=>"3", "name"=>"Сидоров С.С.", "age"=>"47", "email"=>"sidorov@mail.ru");


foreach ($catalog_main as &$value) {
echo $value['id'] . " -" . $value['name'] . " - " . $value['age'] . " - " . $value['email'] . '<br>';
}


?>

он мне выводит сейчас все строки массива, мне бы хотелось чтобы он не выводил строку массива где имеется name=Петров П.П.

Прошу помощи как можно реализовать данную задачу?
icedfox
foreach ($catalog_main as $value) {
if ($value['name'] == 'Петров П.П.') {
echo $value['id'] . " -" . $value['name'] . " - " . $value['age'] . " - " . $value['email'] . '<br>';
}
}
FatCat
Удалить из массива? unset();
Не выводить в цикле можно по условию:
Цитата (dievalex @ 17.03.2016 - 20:12)
echo $value['id'] . " -" . $value['name'] . " - " . $value['age'] . " - " . $value['email'] . '<br>';

if($value['email'] != "Петров П.П.")
echo $value['id'] . " -" . $value['name'] . " - " . $value['age'] . " - " . $value['email'] . '<br>';


_____________
Бесплатному сыру в дырки не заглядывают...
dievalex
Цитата (icedfox @ 17.03.2016 - 21:58)
foreach ($catalog_main as $value) {
if ($value['name'] == 'Петров П.П.') {
  echo $value['id'] . " -" . $value['name'] . " - " . $value['age'] . " - " . $value['email'] . '<br>';
}
}

В этом случае выводит только строку где есть name Петров П.П.
мне же нужно чтобы все строки но кроме где есть Петров П.П.

то есть результат должен быть

1 -Иванов И.И. - 25 - ivanov@mail.ru
3 -Сидоров С.С. - 47 - sidorov@mail.ru
icedfox
dievalex
вам чуть выше ответили уже
dievalex
Цитата (FatCat @ 17.03.2016 - 21:59)
Удалить из массива? unset();
Не выводить в цикле можно по условию:
Цитата (dievalex @ 17.03.2016 - 20:12)
echo $value['id'] . " -" . $value['name'] . " - " . $value['age'] . " - " . $value['email'] . '<br>';

if($value['email'] != "Петров П.П.")
echo $value['id'] . " -" . $value['name'] . " - " . $value['age'] . " - " . $value['email'] . '<br>';

нет удалить строку при выводе.. не в массиве, нужно добиться вот такого результата используя foreach

1 -Иванов И.И. - 25 - ivanov@mail.ru
3 -Сидоров С.С. - 47 - sidorov@mail.ru
dievalex
Все разобрался.. спасибо Вам большое smile.gif сам затупил
casper - gg
Поскольку ответ уже Вам дали. Добавлю лишь небольшое замечание, в догонку:
$catalog_main

слишком длинно..., со временем может превратится в такое:
$cat_main

... что в буквальном будет как "важный кот" ), от этого происходят головные боли иногда,
мой совет такой - старайтесь подбирать названия переменным из одного слова (по возможности). Например вот так:
$level, $standart, $plane, $category, $list, $catalog, $directory

и т.п., хотя это индивидуально все (бывает что и такое приемлемо $catalog_main_book ), но мозгу как то легче ориентироваться в однословных названиях, чем в многословных.
FatCat
Цитата (casper - gg @ 17.03.2016 - 21:34)
$catalog_main_book

Месье знает толк в извращениях.
А я извращаюсь обычно так: $catalog['main']['book'] tongue.gif

_____________
Бесплатному сыру в дырки не заглядывают...
casper - gg
Цитата (FatCat @ 18.03.2016 - 12:16)
А я извращаюсь обычно так: $catalog['main']['book'] 

это уже кому как нравится wink.gif , мне такой вариант тоже ближе.
icedfox
Цитата (FatCat @ 18.03.2016 - 14:16)
$catalog['main']['book']

$catalog['main']['book']['page'] wink.gif
Быстрый ответ:

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