Код: Выделить всё
$sports = array(
'Softball - Counties',
'Softball - Eastern',
'Softball - North Harbour',
'Softball - South',
'Softball - Western'
);
Я думаю, что я бы последовал этому процессу
Код: Выделить всё
$i = 1;
// loop to the length of the first string
while ($i < strlen($sports[0]) {
// grab the left most part up to i in length
$match = substr($sports[0], 0, $i);
// loop through all the values in array, and compare if they match
foreach ($sports as $sport) {
if ($match != substr($sport, 0, $i) {
// didn't match, return the part that did match
return substr($sport, 0, $i-1);
}
} // foreach
// increase string length
$i++;
} // while
// if you got to here, then all of them must be identical
- Есть ли встроенная функция или гораздо проще как это сделать?
- Для моего 5-строчного массива это, вероятно, нормально, но если бы я сделал несколько тысяч строковых массивов, было бы много накладные расходы, поэтому мне придется рассчитывать перемещение с моими начальными значениями $i, например, $i = половина строки, если это не удастся, то $i/2, пока это не сработает , затем увеличивайте $i на 1, пока не добьемся успеха. Чтобы мы делали наименьшее количество сравнений для получения результата.
Подробнее здесь: https://stackoverflow.com/questions/133 ... of-strings