如何从多个php数组获取特定索引值并存储在数组中

时间:2017-07-06 12:34:15

标签: php arrays

我从db表接收了多个数组。现在我试图检查"他们的出生日期==当前日期"如果是,那么他们的联系号码保存在名为生日

的数组中

这是我的尝试

$curr_date = date('m/d');

$birthday = array(); // array initialization
$anniversary = array(); // array initialization

$con=mysqli_connect("localhost","root","","birthdays");


$sql="SELECT * FROM users";

$result=mysqli_query($con,$sql);

$row=mysqli_fetch_assoc($result);

echo "<pre>";

if ($result=mysqli_query($con,$sql))
{
    while ($row=mysqli_fetch_assoc($result))
    {
        print_r ($row);
    }
}

以下是具有预期描述的当前代码的图像

enter image description here

我尝试了很多时间但无法达到确切的结果。请指导我。感谢

3 个答案:

答案 0 :(得分:0)

我认为你需要这样的东西?

$date1 = date('m-d', strtotime($row['birth_date']));
$date2 = date('m-d');

if ($date1 == $date2)   {
    echo 'Happy birthday!';
}

有关详细信息,请参阅PHP date function

答案 1 :(得分:0)

显然你从数据库得到了一个结果,所以你把所有的结果都放在一个数组中:

$sql = "SELECT * FROM xyztable";
$result = $con->query($sql);
$users = array();
while($row = $result->fetch_assoc()) {
    $users[] = $row;
}

所以现在我们处于同一点。 现在你可以通过数组循环,创建一个Birthdays数组,你应该爆炸出生日期:

$birthdays = array();
for($users as $user) {
  $birth = explode("/", $user['birth_date']);

  $new_birth = "$birth[0]/$birth[1]";
  $actual_date = date("m/d");
  if($new_birth == $actual_date) {
     $birthdays[] = $user['customer_mobile'];
  }
}

应该是它。

答案 2 :(得分:0)

如果这是从数据库中获取数据的唯一目的,则无需在单独的数组中推送这些行。只需将联系人号码推送到阵列即可。没有必要循环两次。

    $curr_date = date('m/d');

    $birthday = array(); // array initialization
    $anniversary = array(); // array initialization

    $con=mysqli_connect("localhost","root","","birthdays");


    $sql="SELECT * FROM users";

    $result=mysqli_query($con,$sql);

    $row=mysqli_fetch_assoc($result);

    if ($result=mysqli_query($con,$sql)) {
        while ($row=mysqli_fetch_assoc($result)) {
            if (date('m/d',strtotime($row['birth_date'])) == $curr_date)
                $birthday[] = $row['customer_mobile'];
        }
    }