私は以下の配列を持っているとします$diff
。ループ内部のPHP検索配列
a, a, a, a, b, b, b, a, a, b, b, b, a, a, a, b
A represents a value inside $diff.
B represents an Array inside $diff.
今私はそれがその配列とis not an Array
(instead a value
)でmore than two times
を発生した場合A
をカウントする必要があります。それ以外の場合は無視してください。
上記の入力のために、私の試みである。ここ
[a] = not an array; 0
[a,a] = not an array; 0
[a,a,a] = not an array; 3
[a,a,a,a] = not an array; 4
[b] = array;
[b,b] = array;
[b,b,b] = array;
[a] = not an array; 0
[a,a] = not an array; 0
[b] = array;
[b,b] = array;
[b,b,b] = array;
[a] = not an array; 0
[a,a] = not an array; 0
[a,a,a] = not an array; 3
[b] = array;
を次のようにコードが機能しなければならないが、値が置換されますので、値が変更されます!動作しません。
<?php
foreach($diff as $key => $val) {
if (!is_array($diff[$key])) { // THIS MEANS THAT THE CURRENT ELEMENT IS NOT AN ARRAY.
if(is_array($diff[$key-1])) { //START OF SEQ. IF THE PREVIOUS ELEMENT IS AN ARRAY AND CURRENT ELEMENT IS NOT AN ARRAY.
$SEQ_START=$key;
$n=1;
for($i=0; $i<=count($diff); $i+=1) { // I AM CHECKING HERE IF THE NEXT 3 ELEMENTS are NOT ARRAY, HENCE I CAN INCREMENT IT
if(!is_array($diff[$SEQ_START+$i])) $n+=1;
else $n=0;
}
}
}
}
?>
私はカウントの論理を理解していますが、最終結果は何ですか?連続セグメントの数(> 2)、または連続セグメントの要素数(> 2)? (e。もし前者なら答えは2、後者なら答えは7) – Grexis
私は上記の例で答えが7である必要があります。 – SupaOden