是否有一个PHP函数来确定数组元素是否已更改?

时间:2016-12-20 16:56:57

标签: php foreach

在foreach语句中,我想查看某个数组元素是否已更改。如果没有,请递增我的计数器。如果是这样,请回到一个。是否有捷径可寻?类似......

$position = 1; 

foreach( $rowDatas as $row )
{
    //insert $row into db;

    if( ! hasChanged($row[0]) )
    {
        $position = $postion + 1;
    } 
    else 
    { 
        $position = 1;
    }
}

2 个答案:

答案 0 :(得分:0)

无法找到任何可以做我想做的功能,所以我创建了一些解决方法。 $ rowDatas [2] [0];是我想要比较的第一个元素。

$position = 0;
$a = $rowDatas[2][0];


        try
        {

            foreach( $rowDatas as $row )
            {

                if( $row[0] == $a ){
                    $position++;
                }
                else {
                        $position = 1;
                        $a = $row[0];
                 }
                    $stmt = $dbh->prepare('INSERT INTO Sandbox (row0, row1, row2, Position) VALUES (?, ?, ?, ?)');
                    $stmt->bindParam(1, $row[0], PDO::PARAM_STR);
                    $stmt->bindParam(2, $row[1], PDO::PARAM_STR);
                    $stmt->bindParam(3, $row[2], PDO::PARAM_INT);
                    $stmt->bindParam(4, $position, PDO::PARAM_INT);
                    $status = $stmt->execute();

            }

答案 1 :(得分:0)

我建议您使用array_diff,当且仅当您不关心行内的哪个项被修改时。

$a = $rowDatas[2];

foreach( $rowDatas as $row ) {
    if (array_diff($a, $row)) {
        $position++;

        // ...
    } 
}