Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (2) [1] 2  ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Закрытая темаСоздание новой темыСоздание опроса

> получить ключи из массива
OneFinal  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 275
Пользователь №: 31004
На форуме: 5 лет, 2 месяца, 25 дней
Карма:




Всегда были проблемы с этим делом, но нужно получить данные из такого массива

Array
(
[
0] => Array
(
[
b] => Array
(
[
type] => halflife
[ip] => csfreenet.com.ua
[c_port] => 27015
[q_port] => 27015
[s_port] => 27015
[status] => 1
[pending] => 0
)

[
o] => Array
(
[
request] => s
[id] => 1
[zone] => 0
[comment] =>
[
location] =>
)

[
s] => Array
(
[
game] => cstrike
[name] => CSFREENET | RESPAWN
[map] => de_dust2_2x2
[players] => 19
[playersmax] => 25
[password] => 0
)

)

[
1] => Array
(
[
b] => Array
(
[
type] => halflife
[ip] => 83.222.115.242
[c_port] => 27082
[q_port] => 27082
[s_port] => 27082
[status] => 1
[pending] => 0
)

[
o] => Array
(
[
request] => sc
[id] => 2
[zone] => 0
[comment] =>
[
location] =>
)

[
s] => Array
(
[
game] => cstrike
[name] => Zombie Server 4.3 Classic*
[
map] => zm_mountains_final
[players] => 3
[playersmax] => 16
[password] => 0
)

)



а именно получить все значения [map] в этом массиве, как перебрать по порядку ключи ?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
pak  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Александр
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 401
Пользователь №: 22806
На форуме: 6 лет, 9 месяцев, 2 дня
Карма: 24

Не курю:
7 лет, 2 месяца, 29 дней



for($i = 0; $i < count($array); $i++)
$map[] = $array[$i]['s']['map'];

print_r($map);
PMПисьмо на e-mail пользователюICQ
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
OneFinal  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 275
Пользователь №: 31004
На форуме: 5 лет, 2 месяца, 25 дней
Карма:




супер, а я мучал вот так :)

echo "<pre>";
foreach ($server_list as $k=>$v){
//print_r ($v);

foreach ($v as $k=>$s) {
//sort($s);
print_r($s);



}
}
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
OneFinal  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 275
Пользователь №: 31004
На форуме: 5 лет, 2 месяца, 25 дней
Карма:




подкиньте в нужную сторону, как сделать % из этого всего например ключ de_med_strike - 20% и т.д
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
pak  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Александр
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 401
Пользователь №: 22806
На форуме: 6 лет, 9 месяцев, 2 дня
Карма: 24

Не курю:
7 лет, 2 месяца, 29 дней


Т е в массиве значения по ключу map повторяютя и надо вынести процент их повторения?
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
OneFinal  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 275
Пользователь №: 31004
На форуме: 5 лет, 2 месяца, 25 дней
Карма:




не совсем, например всего 10 ключей
3 из них равны de_dust например, 5 равны de_forge и 2 равны fy_snow
т.е

de_dust - 30%
de_forge - 50%
fy_snow - 20%
вот в таком плане, т.е вывести топ карт smile.gif
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
pak  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Александр
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 401
Пользователь №: 22806
На форуме: 6 лет, 9 месяцев, 2 дня
Карма: 24

Не курю:
7 лет, 2 месяца, 29 дней


как так

$arr = array('fy_snow', 'fy_snow','de_dust','de_dust','fy_snow','de_forge',
'de_forge','fy_snow','de_dust','fy_snow', 'qwe', 'ewq');
$c = array_count_values($arr);
foreach($c as $k => $v)
echo $k . ' - ' . round(($v*100)/array_sum($c)) . '%<br />';
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
OneFinal  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 275
Пользователь №: 31004
На форуме: 5 лет, 2 месяца, 25 дней
Карма:




Отлично то что нужно, вы гений smile.gif
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
OneFinal  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 275
Пользователь №: 31004
На форуме: 5 лет, 2 месяца, 25 дней
Карма:




Ещё вопрос, как ограничить количество до 5 ?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
pak  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Александр
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 401
Пользователь №: 22806
На форуме: 6 лет, 9 месяцев, 2 дня
Карма: 24

Не курю:
7 лет, 2 месяца, 29 дней



$arr = array('test','fy_snow', 'fy_snow','de_dust','de_dust','fy_snow','de_forge',
'de_forge','fy_snow','de_dust','fy_snow', 'qwe', 'ewq', 'ewq', 'ewq6', 'ewq6', 'ewq7');
$c = array_count_values($arr);
$i = array_splice($c, 0, 5);
foreach($i as $k => $v)
echo $k . ' - ' . round(($v*100)/array_sum($c)) . '%<br />';

PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
OneFinal  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 275
Пользователь №: 31004
На форуме: 5 лет, 2 месяца, 25 дней
Карма:




не совсем то,получаеться он берет первые 5 ключей, но по сути это не верно smile.gif
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
pak  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Александр
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 401
Пользователь №: 22806
На форуме: 6 лет, 9 месяцев, 2 дня
Карма: 24

Не курю:
7 лет, 2 месяца, 29 дней


а вам надо 5 по большим процентам?
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
OneFinal  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 275
Пользователь №: 31004
На форуме: 5 лет, 2 месяца, 25 дней
Карма:




т.е например тех же 10 в массиве,

$arr = array('fy_snow', 'fy_snow','de_dust','de_dust','fy_snow','de_forge',
'de_forge','fy_snow','de_dust','fy_snow', 'qwe', 'ewq','de_inferno','de_inferno','fy_class','fy_class');

берем 5 самых больших.

fy_snow de_dust de_forge de_inferno fy_class вот это топ 5 карт, вот как оно выглядит тут,
http://dump.ru/file/5847623
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
OneFinal  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 275
Пользователь №: 31004
На форуме: 5 лет, 2 месяца, 25 дней
Карма:




нашел код который делает туже функцию, но как ло* сижу и туплю не могу его понять
function top_map($limit)
{
global $main,$lang;
$content = '';
$query = $main->db->query('SELECT map FROM `list` where map!=\'-\' and map!=\'\' group by map order by count(map) desc limit 0,'.$limit);
$i = 1;
while ($top = $main->db->fetch($query))
{
$num = $main->db->num($main->db->query('SELECT * FROM `list` where map=\''.$top['map'].'\''));
$nums = $main->db->num($main->db->query('SELECT * FROM `list`'));
$osvw1 = $num/$nums;
$osve1 = $osvw1*100;
$percent = round($osve1);
$image = 'images/maps/'.$top['map'].'.jpg';
if(!file_exists($image)) {$image = 'images/maps/nopicture.jpg';}
if ( $i != 1 ) {$content.= '';}
$content.= '<img width="78" height="57" src="'.$image.'" alt="" align="left" border="0" style="padding-right: 5px;">'.$top['map'].'<br>'.preg_replace(array('/\{number\}/is','/\{percent\}/is'),array($num,$percent),$lang['view_text11']).'|';
$i++;
}
return $content;
}
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
pak  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Александр
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 401
Пользователь №: 22806
На форуме: 6 лет, 9 месяцев, 2 дня
Карма: 24

Не курю:
7 лет, 2 месяца, 29 дней


думаю так?

$arr = array('fy_snow', 'fy_snow','de_dust','de_dust','fy_snow','de_forge',
'de_forge','fy_snow','de_dust','fy_snow', 'qwe', 'ewq','de_inferno','de_inferno','fy_class','fy_class');

$c = array_count_values($arr);
arsort($c);
$i = array_slice($c, 0, 5);

foreach($i as $k => $v)
echo $k . ' - ' . round(($v*100)/array_sum($c), 2) . '%<br />';


Выход:

fy_snow - 31.25%
de_dust - 18.75%
fy_class - 12.5%
de_forge - 12.5%
de_inferno - 12.5%
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (2) [1] 2  Закрытая темаСоздание новой темыСоздание опроса