2016-03-08 77 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