<?php
function prepareArray($str) {
$onlyLowerLetters = preg_replace('/[^a-z]/', '', strtolower($str));
$stringArray = str_split(str_replace(' ', '', $onlyLowerLetters));
$uniqueArray = array_unique($stringArray);
$countsArray = [];
foreach ($uniqueArray as $letter) {
$countsArray[$letter] = substr_count($onlyLowerLetters, $letter);
}
unset($letter);
foreach ($countsArray as $k => $v) {
if ($v === 1) unset($countsArray[$k]);
}
arsort($countsArray);
// reset($countsArray);
return $countsArray;
}
function getIntersect($a1, $a2) {
$ar = array_intersect_assoc($a1, $a2);
$intersect = [];
foreach ($ar as $k => $v) {
$intersect[$k] = $v;
}
return $intersect;
}
function compareArrays($a1, $a2) {
// var_export($a1);
// var_export($a2);
$resultArray = [];
foreach ($a1 as $k => $v) {
$resultArray[$k][0] = $v;
if (isset($a2[$k]) && $a1[$k] > $a2[$k]) {
$resultArray[$k][0] = $v;
}
}
foreach ($a2 as $k => $v) {
$resultArray[$k][1] = $v;
if (isset($a1[$k]) && $a1[$k] < $a2[$k]) {
$resultArray[$k][1] = $v;
}
}
return $resultArray;
}
function mix($s1, $s2) {
$s1Prepared = prepareArray($s1);
$s2Prepared = prepareArray($s2);
// var_export($s1Prepared);
// echo "\n";
// var_export($s2Prepared);
// echo "\n";
$intersectArray = getIntersect($s1Prepared, $s2Prepared);
// var_export($intersectArray);
// echo "\n";
$diffArray = compareArrays(array_diff_key($s1Prepared, $intersectArray), array_diff_key($s2Prepared, $intersectArray));
// var_export($diffArray);
// echo "\n";
foreach ($intersectArray as $letter=>$number) {
$resultArray[$letter][2] = $number;
}
$resultArray = $diffArray + $resultArray;
var_export($resultArray);
echo "\n";
$str = [];
foreach ($resultArray as $letter=>$allNumbers) {
if ( (isset($allNumbers[0], $allNumbers[1]) && ($allNumbers[0] > $allNumbers[1]) )
|| ( isset($allNumbers[0]) && !isset($allNumbers[1]) )
) {
$str[$allNumbers[0]]['letter'] = $letter;
$str[$allNumbers[0]]['string'] = '1';
//$str[] = '1:' . str_repeat($letter, $allNumbers[0]);
}
if ( (isset($allNumbers[0], $allNumbers[1]) && ($allNumbers[0] < $allNumbers[1]) )
|| ( isset($allNumbers[1]) && !isset($allNumbers[0]) )
) {
$str[$allNumbers[1]]['letter'] = $letter;
$str[$allNumbers[1]]['string'] = '2';
// $str[] = '2:' . str_repeat($letter, $allNumbers[1]);
}
if (isset($allNumbers[2])) {
$str[$allNumbers[2]]['letter'] = $letter;
$str[$allNumbers[2]]['string'] = '=';
// $str[] = '=:' . str_repeat($letter, $allNumbers[2]);
}
}
var_export($str);
$res = '';
foreach ($str as $num => $data) {
$res .= '/' . $data['string'] . ':' . str_repeat($data['letter'], $num);
}
return $res;
}
echo mix("looping is fun but dangerous", "less dangerous than coding");
- Output for git.master, git.master_jit, rfc.property-hooks
- array (
'o' =>
array (
0 => 3,
1 => 2,
),
'u' =>
array (
0 => 3,
),
'i' =>
array (
0 => 2,
),
's' =>
array (
0 => 2,
1 => 3,
),
'e' =>
array (
1 => 2,
),
'd' =>
array (
1 => 2,
),
'a' =>
array (
1 => 2,
),
'n' =>
array (
2 => 3,
),
'g' =>
array (
2 => 2,
),
)
array (
3 =>
array (
'letter' => 'n',
'string' => '=',
),
2 =>
array (
'letter' => 'g',
'string' => '=',
),
)/=:nnn/=:gg
This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.
Active branches
Archived branches
Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page
preferences:
59.71 ms | 402 KiB | 8 Q