Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > работа array_keys


Автор: nuzhnoff 30.4.2010, 09:24
Код

<?php
$date = date(l);
//echo $date;
$weekday = array('понедельник' =>'Monday', 'вторник' => 'Tuesday', 'среда' => 'Wednesday', 

'четверг'=> 'Thursday', 'пятница' => 'Friday','суббота' => 'Saturday','восскресение' => 'Sunday' );

$a = array_keys($weekday,$date);
 
echo $a
?>


Объясните почему переменная $a выводить не день недели, а слово Array.
Заранее спасибо .

Автор: ksnk 30.4.2010, 09:33
потому, что она именно http://php.net/array_keys ;)
echo $a замени на 
var_dump($a);

возможно станет понятнее.

Автор: azesmcar 30.4.2010, 09:44
nuzhnoff

В массиве теоретически может быть два ключа со значением Friday, потому функция возвращает массив, просто бери первый элемент.

А вообще лучше вот так
Код

setlocale (LC_ALL, array ('ru_RU.CP1251', 'rus_RUS.1251'));
$date = strftime("%A", mktime());
// echo $date;

Автор: nuzhnoff 30.4.2010, 09:55
спасибо буду разбираться.

Автор: SelenIT 30.4.2010, 14:51
Подозреваю, что автор темы имел в виду http://php.net/array_search smile

Хотя для замены нерусского названия на русское логичнее бы сделать наоборот - англ. названия (или номера) ключами массива, русские названия значениями, и обращаться элементарно как $rus_weekdays[$eng_day] или $rus_weekdays[$daynum]. Или так, как azesmcar советует (это правильнее всего идеологически, но имена нужных локалей на разных серверах могут варьироваться). И еще, воскресение - это чудо, а день недели - воскресенье ;)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)