<?php
/**
* 1) Verilmiş textdəki hərfləri işlənmə sayına görə yuxarıdan aşağı doğru çap edən proqram. Array və for, vvhile, foreach istifadə edə bilərsiz. array_*, substr, strlen istifadə etmək olmaz.
*/
function myRsort ( $text = NULL )
{
$loop = TRUE;
$diffLetters = [];
$n = 0;
$myIn_array = FALSE;
while ( $loop === TRUE )
{
if ( isset( $text[ $n ] ) )
{
// different letter
if ( ! empty( $diffLetters ) )
{
foreach ( $diffLetters as $diffLetter => $value )
{
if ( $diffLetter == $text[ $n ] )
{
$myIn_array = TRUE;
$diffLetters[ $text[ $n ] ] = $value + 1;
}
}
}
if ( $myIn_array !== TRUE )
{
$diffLetters[ $text[ $n ] ] = 1;
}
$myIn_array = FALSE;
$n++;
}
else
{
$loop = FALSE;
}
}
// echo '<pre>';
// return $diffLetters;
//elementleri indeksledim
$output = [];
$bridgeArray = [];
foreach ( $diffLetters as $diffLetter => $value )
{
$bridgeArray[ $diffLetter ] = $value;
$output[] = $bridgeArray;
$bridgeArray = [];
}
//Massivde herflerin sayina gore tersine duzdum
for ( $i = 0; $i < count( $output ); $i++ )
{
foreach ( $output[ $i ] as $letter1 => $value1 )
{
for ( $j = 0; $j < count( $output ); $j++ )
{
foreach ( $output[ $j ] as $letter2 => $value2 )
{
if ( $value1 > $value2 )
{
$tem = $output[ $i ];
$output[ $i ] = $output[ $j ];
$output[ $j ] = $tem;
}
}
}
}
}
echo '<pre>';
return $output;
}
$text = 'Proqramlasdirma';
print_r( myRsort( $text ) );
//Output
Array
(
[0] => Array
(
[r] => 3
)
[1] => Array
(
[a] => 3
)
[2] => Array
(
[m] => 2
)
[3] => Array
(
[i] => 1
)
[4] => Array
(
[P] => 1
)
[5] => Array
(
[d] => 1
)
[6] => Array
(
[o] => 1
)
[7] => Array
(
[s] => 1
)
[8] => Array
(
[q] => 1
)
[9] => Array
(
[l] => 1
)
)
Digər dildə:
EN