基本上,我有一個通過foreach循環從多維數組構建的變量。如何驗證字符串的格式?
我需要以某種方式驗證它所在的格式,雖然我不確定如何去解決這個問題,因爲在PHP中我仍然是一個新手。
這是我的字符串的樣子:
question1,answer1,answer2,answer3,answer4
question2,answer1,answer2,answer3,answer4
question3,answer1,answer2,answer3,answer4
我需要驗證正確的格式,是:
string[comma]string[comma]string[comma]string[comma]string
string[comma]string[comma]string[comma]string[comma]string
string[comma]string[comma]string[comma]string[comma]string
我需要一個布爾變量如果可能的話,以驗證它,返回如果它與格式匹配,則爲true或false。這些字符串可以包含任何內容,如字母,數字,特殊字符等。
每行將始終有5個字符串和4個逗號,從不多也不少。
如果需要,這是構建多維數組然後將其轉換爲字符串的代碼。它抓取上傳的CSV文件,將其轉換爲多維數組,然後再構建字符串。正如你所看到的,我的數組從1開始,而不是從0開始,沒有解釋爲什麼這是脫離主題的原因。
$csv_array = array(array());
if (!empty($_FILES['upload_csv']['tmp_name']))
{
$file = fopen($_FILES['upload_csv']['tmp_name'], 'r');
}
if($file)
{
while (($line = fgetcsv($file)) !== FALSE)
{
$csv_array[] = array_combine(range(1, count($line)), array_values($line));
}
fclose($file);
}
if(!empty($csv_array[1]))
{
foreach (array_slice($csv_array,1) as $row)
{
$all_questions = $all_questions . $row[1] . ",";
$all_questions = $all_questions . $row[2] . ",";
$all_questions = $all_questions . $row[3] . ",";
$all_questions = $all_questions . $row[4] . ",";
$all_questions = $all_questions . $row[5];
$all_questions = $all_questions . "\n";
}
}
非常感謝所有幫助。
在此先感謝!
使用'爆炸()',並計算所產生的陣列多少項目了?但是,如果沒有一個字符串裏面有逗號,這隻會起作用。 – andrewsi
'如果(計數($線)== 5)' –
@andrewsi OP已經使用'fgetcsv()',所以他不會有問題。 –