私は次のコードを持っている:二つの配列 - PHP
$lines;
$invalidNumber = [];
$validNumber = [];
function readCSV($thefile) {
$i = 0;
$file = fopen($thefile, 'r');
// Put numbers from CSV into array
while (($line = fgetcsv($file)) !== FALSE) {
// Write lines to array
$lines[$i] = $line;
$i++;
}
fclose($file);
validateNumbers($lines);
}
// Go through array sorting numbers into invalidNumber and validnumbers
function validateNumbers($lines) {
// Valid numbers togo to reuqests and invalid to csvFile to be displayed seperately
$validNumber = [];
$invalidNumber = [];
for ($i = 0; $i < count($lines); ++$i) {
echo "</br>";
$number[$i] = $lines[$i][0];
echo $number[$i] . " length: " . strlen($number[$i]);
/*
switch on length of number: , ,
*/
switch (strlen($number[$i])) {
case 10:
if (substr($number[$i], 0, -9) != 7) {
$inc = count($invalidNumber);
$invalidNumber[$inc++] = $number[$i];
} else {
$vnc = count($validNumber);
$validNumber[$vnc++] = $number[$i];
}
break;
case 11:
switch (substr($number[$i], 0, -9)) {
case 07:
$vnc = count($validNumber);
$validNumber[$vnc++] = $number[$i];
break;
default:
$inc = count($invalidNumber);
$invalidNumber[$inc++] = $number[$i];
break;
}
break;
case 12:
switch (substr($number[$i], 0, -9)) {
case 447:
$vnc = count($validNumber);
$validNumber[$vnc++] = $number[$i];
break;
case '077':
$vnc = count($validNumber);
$validNumber[$vnc++] = $number[$i];
break;
default:
$inc = count($invalidNumber);
$invalidNumber[$inc++] = $number[$i];
break;
}
break;
case 13:
switch (substr($number[$i], 0, -9)) {
case '+447':
$vnc = count($validNumber);
$validNumber[$vnc++] = $number[$i];
break;
default:
$inc = count($invalidNumber);
$invalidNumber[$inc++] = $number[$i];
break;
}
break;
default:
// if number is not 10, 11, 12 or 13 charaters long if < 10 (SKIP), if = 10 & charAt 1 != 7 (invalid)
echo "Invalid Number";
break;
}
}
}
を私がする機能のうち、配列$ validNumberと$ invalidNumberに合格したいと思います私がページの一番上に宣言している配列は、どうしようもしないようです。
だけhttp://php.net/manual/en/language.variables.scope.php(あなたは、[変数のスコープ]で調べる必要があり、無効と有効 – Ghost
の配列の 'return'値を使用します)しかし** ** 'global'を使わないでください – RiggsFolly
関数の参照パラメータを使用して、関数によって変更される配列を渡すことができます。 – arkascha