js到php格式转换失败

时间:2014-04-26 10:12:34

标签: javascript php arrays

这是工作的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' 
我错过了什么吗?

3 个答案:

答案 0 :(得分:1)

而不是.length

$friendstab.length

使用count()

count($friendstab)

count()

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];
      }
   }
}

您还可以将辅助变量分配给arrayobject长度,以便在每次迭代时都不执行count(),但仅限于您不更改集合长度的情况下arrayobject

$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