php - 不获取数组文本,而只获取输出
问题描述
我有这个代码,从用 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]
.
推荐阅读
- java - 如何修复循环以获取我传递的值作为参数?
- excel - Excel VBA 复制过滤并粘贴到另一个选项卡
- javascript - JavaScript 的 Fetch 可以用来更新 Rails 控制器中的参数值吗?
- php - 饼干罐 。排队返回空 - Laravel
- heroku - Heroku 上的 Socket.IO / Express / Nuxt?
- javascript - javascript - 如何使这个数组工作?
- python - 如何在 python 中将我的文本文件分割成段落?
- numpy-ndarray - 用 (-1,1) 重塑 numpy 中的数据。这是什么意思?
- c# - 有没有办法在 Uri 中为 HttpClient 发送转义句点字符
- java - 为什么 Android Virtual Device 没有运行我的项目?