不获取数组文本,而只获取输出



我有这段代码,来自用php获取下一个生日,以在只有php的页面上获取即将到来的生日。输出是可以的,但看起来是这样的:array(1) { [0]=> string(9) "Tom(23-5)" }我该如何修复它,它只会显示";Tom(23-5(";

$json = '{
"user": [
{
"id": "1",
"name": "Tom",
"bday": {
"month": "5",
"day": "23"
}
},
{
"id": "2",
"name": "Tommy",
"bday": {
"month": "1",
"day": "28"
}
},
{
"id": "3",
"name": "Mary",
"bday": {
"month": "1",
"day": "30"
}
},
{
"id": "4",
"name": "Kelvin",
"bday": {
"month": "1",
"day": "1"
}
},
{
"id": "5",
"name": "Peter",
"bday": {
"month": "1",
"day": "1"
}
}
]
}';
$birthday_array = json_decode($json,true);
//var_dump($bir_array);
$result = findBday($birthday_array['user']);
var_dump($result);

function findBday($user_details){
$this_month = date("n");
$this_day = date("j");
$return_array = array();
$tmp_array = array();
//make a loop
foreach ($user_details as $user_detail) {        
$bday = $user_detail['bday'];
if($this_month == $bday['month'] && $this_day == $bday['day']){
$return_array[] = $user_detail['name'] . "(".$bday['day']."-".$bday['month'].")";
} 
else {
$tmp_array[] =  $user_detail;
}
}
if(count($return_array) === 0 && count($tmp_array) > 0)
{
//sort using php usort
usort ($tmp_array, 'sortByOrder'); 
$closest = null;        
$tmp_val = "";
foreach ($tmp_array as $key => $value) {
$month = $value['bday']['month'];
$day = $value['bday']['day'];
if($month == $this_month)
{
if($day > $this_day){
$tmp_val = $value;
break;
}
}
elseif ($month > $this_month) {
$tmp_val = $value;
break;
}
}      
if($tmp_val != "")
$tmp_array = $tmp_val;
else    
$tmp_array = $tmp_array[0];
$bday = $tmp_array['bday'];
$return_array[] = $tmp_array['name'] . "(".$bday['day']."-".$bday['month'].")";
}

return $return_array;
}
function sortByOrder($a, $b) {    
$day_a = $a['bday'];
$day_b = $b['bday'];
if ($day_a['month'] > $day_b['month'])
return 1;
elseif($day_a['month'] == $day_b['month'])
{
if ($day_a['day'] > $day_b['day'])   
return 1;
}
}

谢谢你帮我。我没有在我添加的页面上找到答案。所以我想在这里得到一个答案。我对这个编码还比较陌生,所以我的问题是。

这是因为结果是一个数组。如果你只想要第一个名字,那么读取数组的第一个条目:

$nextBirthday = $result[0];

如果您希望$result只是名称,那么将findBday函数的return语句更改为return $return_array[0]

最新更新