Skip to content

Instantly share code, notes, and snippets.

@lbvf50mobile
Last active September 28, 2020 16:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lbvf50mobile/6f814383eebc32db56cb68a67e3e5a7a to your computer and use it in GitHub Desktop.
Save lbvf50mobile/6f814383eebc32db56cb68a67e3e5a7a to your computer and use it in GitHub Desktop.
Just PHP FUN 014.
<?php
# https://www.codewars.com/kata/5968bb83c307f0bb86000015 Basic Nico variation.
function nico(string $key, string $message): string {
$key_arr = str_split($key);
$order = array_values(array_unique(str_split($key)));
sort($order);
// var_dump($order);
$key_arr = array_map(function($x) use ($order){
return array_search($x,$order);
},$key_arr);
// var_dump($key_arr);
$size = count($key_arr);
echo "key: ".implode("",$key_arr)." \n";
$array = array_fill(0,$size,"");
$answer = array_fill(0,$size,"");
foreach(str_split($message) as $k=>$v) $array[$k%$size] = $array[$k%$size] . $v;
// var_dump($array);
$max = max(array_map("strlen",$array));
// var_dump($max);
foreach($array as $k => $v) $array[$k] = str_pad($v, $max, " ");
//var_dump($array);
foreach($key_arr as $k => $v) $answer[$v] = str_split($array[$k]);
//var_dump($answer);
$answer_string = "";
for($i = 0 ; $i < $max; $i += 1)
for($j = 0; $j < $size; $j += 1)
$answer_string .= $answer[$j][$i];
return $answer_string;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment