在我的应用程序中,我需要这种格式:
[
{"mobileNumber":"00000"},
{
"mobileNumber":"AAAA",
"ewallets": ["11111","2222","3333"]
},
{
"mobileNumber":"BBBB",
"ewallets": ["11111","2222","3333","4444","5555"]
}
]
现在我想通过以下代码创建这种格式:
$contacts = [];
for ($idx = 0; $idx < count($all_data); $idx++) {
$obj = (Array)$all_data[$idx];
$mobileNumber = str_replace('-', '', $mobileNumber);
if($mobileNumber[0] != '0')
$mobileNumber = '0'.$mobileNumber;
$data = ContactLists::whereContactMobileNumber($mobileNumber)->exists();
if($data){
$contact_ewallets = UserWallets::where('account_number', 'LIKE', '%' . substr($mobileNumber, 1, strlen($mobileNumber)))->get();
$temp[]['mobileNumber']=$obj["mobileNumber"];
foreach ($contact_ewallets as $value){
$ewallet['ewallet'][]=$value->account_number;
}
$contacts = array_merge($temp,$ewallet);
}
}
echo json_encode($contacts);
我的代码生成了这种格式并且错误:
{
"0":
{"mobileNumber":"(937) 303-6569"},
"1":
{"mobileNumber":"09192522674"},
"2":
{
"mobileNumber":"09373036569"
},
"ewallet":["EPIRR9373036569","EPUSD9373036569","EPCHF9373036569","EPIRR9373036569","EPUSD9373036569","EPCHF9373036569"]
}
答案 0 :(得分:0)
您需要将array_values应用于数组。
json_encode(array_values($$contacts));
答案 1 :(得分:0)
问题由以下代码解决:
$accountNumbers = "";
$data = UserWallets::where('account_number', 'LIKE', '%' . substr($mobileNumber, 1, strlen($mobileNumber)))->first();
if ($data != null) {
$contact_ewallets = UserWallets::where('account_number', 'LIKE', '%' . substr($mobileNumber, 1, strlen($mobileNumber)))->get();
foreach ($contact_ewallets as $value) {
$accountNumbers[]['accountNumber'] = $value->account_number;
}
$epayContacts[] = [
[
'mobileNumber' => $obj["mobileNumber"],
'contactUserId' => $data->user_id,
'userEwallets' => $accountNumbers
]
];
}