Php 将值赋给双数组

Php 将值赋给双数组,php,multidimensional-array,Php,Multidimensional Array,我有一个问题,将值分配给数组数组以将重复项添加到相同的值中。代码如下: if( isset($rowsarray) && 0 < count($rowsarray) ) { foreach ( $rowsarray as $rowt ) { if( $version == $rowt[0] ) { $rowt[1] += $success; $rowt[2] += $failure;

我有一个问题,将值分配给数组数组以将重复项添加到相同的值中。代码如下:

if( isset($rowsarray) && 0 < count($rowsarray) ) {
    foreach ( $rowsarray as $rowt ) {
        if( $version == $rowt[0] ) {
            $rowt[1] += $success;
            $rowt[2] += $failure;
            $noDuplicate = false;
            break;
        }
    }
}
if( true == $noDuplicate) {
    $rowsarray[] = array($version, $success, $failure);
}
if(isset($rowsarray)和&0

因此,如果它是某个版本的第一次出现,我只需添加它,否则我只需增加阵列中的成功率和失败率。我尝试过foreach($rowsarray as$key=>$rowt),但没有成功,因为“内部”数组在这里似乎没有受到影响。我对php完全陌生,所以我想这是一个相当简单的解决方案,但现在它只需要第一个版本的访问,其他所有的都在循环内部而不是外部进行访问。

您试图修改由foreach()创建的临时数组,这意味着
$rowt
在每次迭代中都会被破坏/替换。您可以使用引用或修改的foreach来解决此问题:

foreach ( $rowsarray as &$rowt ) {
                        ^----
        $rowt[1] += $success;
或者,不那么麻烦:

foreach($rowsarray as $key => $rowt) {
    $rowsarray[$key][1] += $success;

您试图修改由foreach()创建的临时数组,这意味着每次迭代时,
$rowt
都会被丢弃/替换。您可以使用引用或修改的foreach来解决此问题:

foreach ( $rowsarray as &$rowt ) {
                        ^----
        $rowt[1] += $success;
或者,不那么麻烦:

foreach($rowsarray as $key => $rowt) {
    $rowsarray[$key][1] += $success;

您可以通过以下方式简化此检查:

if( isset($rowsarray) && 0 < count($rowsarray) ) {
然后呢,

foreach ( $rowsarray as $key => $rowt ) {
    if( $version == $rowt[0] ) {
        $rowsarray[$key][1] += $success;
        $rowsarray[$key][2] += $failure;

您可以通过以下方式简化此检查:

if( isset($rowsarray) && 0 < count($rowsarray) ) {
然后呢,

foreach ( $rowsarray as $key => $rowt ) {
    if( $version == $rowt[0] ) {
        $rowsarray[$key][1] += $success;
        $rowsarray[$key][2] += $failure;

$rowsarray
看起来像什么?
true==$noDuplicate
0
,为什么?为什么要这样做?真正的==$noDuplicate检查是,如果我更新了它,我不想再添加它,0$rowsarray是什么样子?
true==$noDuplicate
0
,为什么?为什么要这样做?真正的==$noDuplicate检查是,如果我更新了它,我不想再添加它,0