这是工作的js,我找到了逻辑
http://jqversion.com/#!/XWFtbQb
for (var i = 0; i < job.length; i++) {
for (var j = 0; j < jobDetails.length; j++) {
if (job[i].uId == jobDetails[j].uId) {
job[i].salary = jobDetails[j];
}
}
}
console.log(job);
但后来我尝试使用php,就像这样
for ($i = 0; $i < $friendstab.length; $i++) {
for ( $j = 0; $j < $tasks.length; $j++) {
if ($friendstab[$i]->uId == $tasks[$j]->uId) {
$friendstab[$i]->tasks = $tasks[$j];
}
}
}
echo json_encode($friendstab);
我说错误
Use of undefined constant length - assumed 'length'
我错过了什么吗?
答案 0 :(得分:1)
而不是.length
:
$friendstab.length
使用count()
:
count($friendstab)
for ($i = 0; $i < count($friendstab); $i++) {
for ( $j = 0; $j < count($tasks); $j++) {
if ($friendstab[$i]->uId == $tasks[$j]->uId) {
$friendstab[$i]->tasks = $tasks[$j];
}
}
}
您还可以将辅助变量分配给array
或object
长度,以便在每次迭代时都不执行count()
,但仅限于您不更改集合长度的情况下array
或object
:
$friendstab_length = count($friendstab);
$tasks_length = count(tasks);
for ($i = 0; $i < $friendstab_length; $i++) {
for ( $j = 0; $j < $tasks_length; $j++) {
if ($friendstab[$i]->uId == $tasks[$j]->uId) {
$friendstab[$i]->tasks = $tasks[$j];
}
}
}
答案 1 :(得分:0)
请参阅count()
:
而不是PHP中的$friendstab.length
,您必须使用count($friendstab)
答案 2 :(得分:0)
首先,您需要了解javascript和PHP之间的区别。
要在PHP中计算单个数组变量,请使用 count($arrayvariable)
在JS中,您可以使用arrayvariable.length