Проверка наличия значения массива в переполнении стека

я храню даты рождения в массиве

$birthdays = array
(
array("Alex",5,12),
array("Tom",2,20),
array("Sarah",6,12),
array("Anna",6,8)
array("Jonh",10,7)  );

Мне нужна HTML-форма (2 поля ввода). Мне нужно ввести дату, нажать кнопку и, если дата существует, напечатает имя человека, у которого сегодня день рождения.

-5

Решение

Вы можете попробовать что-то вроде этого …

$SearchValue = "Sarah"foreach ($birthdays as $value)
{
if (is_array($value))
{
if (in_array($SearchValue, $value)
{
//prints the inner array if the inner array contains your search value
print_r($value);
}
}
}
2

Другие решения

Попробуй это:

<?php

$birthdays = array
(
array("Alex",5,12),
array("Tom",2,20),
array("Sarah",6,12),
array("Anna",6,8),
array("Jonh",10,7)
);

function getBirthdayNameByDate($birthdaysArray, $day, $month)
{
foreach($birthdaysArray as $array)
{
if($array[1] == $month && $array[2] == $day)
return $array[0];
}

return null;

}

$result = getBirthdayNameByDate($birthdays, 8, 6);

var_dump($result);
2

С этой функцией:

function retrieveBirthdays( $birthdays, $month, $day=0 )
{
return array_values
(
array_filter
(
$birthdays,
function( $row ) use( $month, $day )
{
if( $day ) return ( $row[1]==$month && $row[2]==$day );
else       return ( $row[1]==$month );
}
)
);
}

print_r( retrieveBirthdays( $birthdays, 2, 20 ) );

будет выводить:

Array
(
[0] => Array
(
[0] => Tom
[1] => 2
[2] => 20
)

)

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

print_r( retrieveBirthdays( $birthdays, 6 ) );

и вы получите:

Array
(
[0] => Array
(
[0] => Sarah
[1] => 6
[2] => 12
)

[1] => Array
(
[0] => Anna
[1] => 6
[2] => 8
)

)

0

$birthdays = array (
array("Alex",5,12),
array("Tom",2,20),
array("Sarah",6,12),
array("Anna",6,8),
array("Jonh",10,7),
array()
);

foreach($birthdays as $birthday) {
if($birthday) {
echo $birthday[0]."<br/>";
echo $birthday[1]."<br/>";
echo $birthday[2]."<br/>";
}
}

Посмотрите, поможет ли приведенный выше код, он просто имеет условие if в foreach, чтобы проверить, что массив не является

-3
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector