2016-03-08 76 views
-5

我正在存储在数组的生日日期存在数组值检查是否在PHP

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

我需要的HTML形式(2输入文本框),我必须输入日期,按该按钮,如果日期是存在,将打印谁拥有生日的人的名字今天

+0

你的意思是,如果一个特定的阵列是你'$ birthdays'阵列上?如果是显示它? – Rizier123

+0

'in_array()'? – rray

+0

如何输入? 2个变量?像'$ day = 20; $月= 2'? – rray

回答

2

你可以尝试这样的事情......

$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); 
     } 
    } 
} 
+1

不知道为什么downvote旅已经针对我的答案。它完全符合OP的要求。 – mituw16

+4

为什么这个正确的答案被低估? – iJamesPHP

+1

当索引完全定义好时,我不会使用'in_array'。改用'if($ value [0] == $ SearchValue)'。 – deceze

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); 
+0

var_dump($ result); var_dump($ result); –

+0

显示存储在作为参数传递的变量中的值。它对调试很有用。 – aslawin

+0

我需要html表单(2输入文本框)我必须输入日期,按下按钮,如果日期存在,将打印今天有生日的人的名字 –

-3
$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/>"; 
} 
} 

参见如果上述代码帮助,它只是具有如果condtion中的foreach要检查阵列并不emptu

+0

我看到问题已被用户更改。所以根据原来只是检查价值是否存在的问题,为什么我的这个答案被拒绝投票? – Krishna

+0

我需要html表单(2输入文本框)我必须输入日期,按下按钮,如果日期存在,将打印今天有生日的人的名字 –

0

使用此功能:

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

我需要html表单(2输入文本框)我有输入日期,按下按钮,如果日期存在,将打印今天有生日的人的姓名 –

+0

@AlexBazikalo检索今日生日的人的姓名:'$ persons = retrieveBirthdays($ birthdays,3, 9); $ name = $ persons [0] [0]'。 '$ name'是你想要的名字。附注:你认为完全不可能有两个同一生日的人? – fusion3k