3

これは私のコードです。このコードでは、JSON を arrayに変換する関数 read_from_json を介して既存の配列を読み取っています。リモート データから新しいデータを取得しているため、既存の配列全体を上書きせずにそれらのデータを追加する必要があります。配列。ID を取得する場合と同様に、in_array 関数を使用して検索し、見つからない場合はメッセージを送信し、特定のエントリのみを既存の配列に追加します。foreach 反復による問題があるため、すべての配列が上書きされます。他に何ができますか。このコードを見てください:

$read_data = $this->read_from_json( 'xyz.json' );

foreach ( $projects_id_tickcamp as $tick_id => $base_id ) {

            if ( !$this->in_array( $base_id['base_id'], $read_data ) ) {

                echo '<b>do post message function for ' . $tick_id . ' ' . $base_id['base_id'] . '</b><br />';

                $i = count( $read_data );

                while ( $i >= count( $base_id['base_id'] ) ) {

                    echo 'post message start' .'<br />';
                    $i++;
                    break;
                    $projects_id_tickcamp[$tick_id]['message_id'] = 1;

                }

                //echo 'posted message id of ' . $base_id['basecamp_id'] . '<br />';
            } else {
                echo 'do nothing' . '<br />';
                //return false;
            }
        }

        //echo 'write data if id similar' . '<br />';
        $this->write_to_json( 'xyz.json', $projects_id_tickcamp );
        return $projects_id_tick;

上記のコードの出力は次のようになります。

Array
(
    [125434] => Array
        (
            [base_id] => 1306755
        )

    [127354] => Array
        (
            [base_id] => 1287834
        )

)

新しい ID がリモートから取得された場合、ID は配列の最後の場所にのみ書き込まれます。

4

3 に答える 3

11

いくつかのオプションがあります:

幸運を!

于 2012-10-15T10:03:25.970 に答える
3

別の値を返した後、array_merge を使用するとこれが修正されます。

例:

$result_array=array_merge($arr1,$arr2);
于 2012-10-15T10:02:23.387 に答える
0

PHP配列に何かを追加したい場合は、次を使用できます$myArray[] = "new value"

于 2012-10-15T10:01:47.033 に答える