それがコードです:
$myarray = ['asdf' => array(), 'zxcv' => array()];
while (!feof($file))
{
$line = fgets($file);
if (strpos($line, "mystring")
{
$temp = explode(" ", $line);
$temp2 = explode(":", $temp[2]);
if (array_key_exists('1', $temp2))
{
$myarray['asdf'][] = "1";
}
}
}
問題は、巨大なファイル (2mil+ 行) を解析する場合にのみ発生します。配列をダンプすると、値が存在することが示されます (同じ「mystring」カウントで私とメモ帳++が得られます) が、そうarray_key_exists()
でない場合は false を返すように見えます。何か案は?
私の目標の簡単な説明: ファイル内の行には次の構造があります - blabla mystring blabla blabla
、最大 20 個のスペース区切り文字。正確mystring
には DHCPOFFER です。私の場合、条件が満たされ、ログファイル (isc-dhcpd ログファイル) に行が追加された時刻を配列に挿入しようとしています。横の blablamystring
は nn:nn:nn で、これは標準的な時間パターンです。