Prijde mi, ze stale nechapes princip. Postup ma 2 casti. v jedne resis porovnani na slovo a v druhe samotne porovnani retezcu.
cmp (a, b)
je tam slovo?
a ano b ne return -1
a ne b ano return +1
a ano b ano strcmp(a,b)
a ne b ne strcmp(a,b)
return pak resi serazovaci cyklus, jestli polozky prohodi nebo ne a to tak, ze
return>0, pak zamen a,b, cili tmp=a; a=b; b=tmp;
Ale, tvuj kod
public function sortColumnsBySubstring($a, $b){
$found = false; // false = 0, rovnost, neprehazovat
foreach ($this->search_date_columns as $k => $needle):
$asearch = (strpos($a, $needle) !== false);
$bsearch = (strpos($b, $needle) !== false);
if ( $asearch || $bsearch)
{ $found = true; break; } // true=1, jako return 1
endforeach;
cili, kdyz bude
a ano b ano, tak udela return 1 a zameni 'a' a 'b', cili poradi ba, OK
a ano b ne, udela return 1, zameni 'a' a 'b', cili poradi ba, SPATNE
a ne, b ano, udela return 1, zameni a a b, poradi ba, OK
Co se ti nezdalo na kodu od Q?