Ich habe dieses numerische mehrdimensionale Array in PHP. Es ist Playfair Matrix und ich möchte die Schlüssel eines Buchstabens aus der Matrix bekommen.Numerisches mehrdimensionales Array php
Nehmen wir an, ich habe den Buchstaben "P", der in der dritten Zeile (0 bis 4) und der zweiten Spalte (0 bis 4) steht. Ich habe mehrere Dinge array_keys ausprobiert (funktioniert nicht so wie ich es will), funktioniert, um den Schlüssel der ersten Ebene des Arrays zu bekommen, macht das Array eindimensional und macht einige Zaubertricks ... Nichts funktioniert und ich hätte gerne Hilfe .
Dies ist die Funktion, die die Schlüssel der ersten Ebene wird:
function array_search2($needle, $haystack){
$l = count($haystack);
for ($i=0; $i < $l; $i++) {
if (in_array($needle, $haystack[$i])) return $i;
}
return false;
}
Ich möchte mit den Buchstaben dieses Array haben, zwei Briefe von ihm zu bekommen, diese beiden Buchstaben ihre Koordinaten zu erhalten (von der PLayfair-Matrix) und um ihre Zeilen/Spalten zu vergleichen. Danke und ich poste jeden Code, der benötigt wird.
Edit: Ich bin alle Posting habe ich:
$keyword = str_replace(' ','', $_POST['keyword']);
$plaintext = str_replace(' ','', $_POST['plaintext']);
$key = str_split($keyword); //string to array
$plain = str_split($plaintext); //string to array
$alphabet = array(
0 => 'a', 1 => 'b', 2 => 'c', 3 => 'd', 4 => 'e', 5 => 'f',
6 => 'g', 7=> 'h', 8 => 'i', 9 => 'j', 10 => 'k', 11 => 'l',
12 => 'm', 13 => 'n', 14 => 'o', 15 => 'p', 16 => 'q', 17 => 'r',
18 => 's', 19 => 't', 20 => 'u', 21 => 'v', 22 => 'w', 23 => 'x',
24 => 'y');
for ($i=0; $i < count($key); $i++) {
for ($j=0; $j < count($alphabet) ; $j++) {
if ($keyword[$i] == $alphabet[$j]) {
unset($alphabet[$j]);
}
}
}
$keywordFilpped = array_flip($key);
$alphabetFlipped = array_flip($alphabet);
$mergedFlipped = $keywordFilpped + $alphabetFlipped;
$i = 0;
foreach ($mergedFlipped as $key => $value) {
$mergedFlipped[$key] = $i;
$i++;
}
$merged = array_flip($mergedFlipped);
$index = 0;
for ($i=0; $i < 5; $i++) {
for ($j=0; $j < 5; $j++) {
$matrix[$i][$j] = $merged[$index];
$index++;
}
}
echo "PLAYFAIR MATRIX:<br>";
for ($i=0; $i < 5; $i++) {
for ($j=0; $j < 5; $j++) {
echo $matrix[$i][$j];
}
echo "<br>";
}
Ihr Code haben eindimensionale Array, 'echo array_search ('p', $ Alphabet)' .. das sollte funktionieren –
Ja, es sollte funktionieren, wenn ich von $ Alphabet suchen wollte, aber ich möchte $ Matrix suchen. Daher sollte ich zwei Schlüssel bekommen ($ i, $ j zum Beispiel). –
Sie müssen auch keine numerischen Indizes angeben, php wird das automatisch tun. –