2015-12-19 1 views
-1

У меня есть функция, написанная для преобразования String в integer (с использованием a для каждого цикла). Функция:Использование для каждого преобразования String в integer не работает

function prepare_client_data($data) 
{ 
foreach ($data as $index=>$value) 
{ 
    if($index<1) continue; 
    $data[$index]['3']=(int)($value[$index]['3']); 
    $data[$index]['18']=(int)($value[$index]['18']); 
    $data[$index]['20']=(int)($value[$index]['20']); 
    $data[$index]['22']=(int)($value[$index]['22']); 
    $data[$index]['25']=(int)($value[$index]['25']); 
    $data[$index]['30']=(int)($value[$index]['30']); 
} 

, но эта функция не работает, и конвертировать все строки в INT 0
Интересно, что когда я сделать то же самое из foreach это работает:

$data['3']['20']=(int)($data['3']['20']); 
echo $data['3']['20'].'test'; 

Может кто-то мне помочь. Я попытался взломать его. Нет прогресса.

+0

вы можете добавить, что внутри '$ data'? – roullie

+0

Сообщение с образцом ввода, –

+0

Что-то не так в '$ data [$ index] ['3'] = (int) ($ value [$ index] ['3']); '$ data ... = $ value ...? – Psyhos

ответ

-1

Прежде всего, вам не хватает одной фигурной скобки. Вот решение, которое вы

нужду
function prepare_client_data($data) { 
    foreach ($data as $index => $value) { 
     if ($index < 1) 
      continue; 
     //echo ($value['3']); 
     $data[$index]['3'] = (int) $value['3']; 
     $data[$index]['18'] = (int) ($value['18']); 
     $data[$index]['20'] = (int) ($value['20']); 
     $data[$index]['22'] = (int) ($value['22']); 
     $data[$index]['25'] = (int) ($value['25']); 
     $data[$index]['30'] = (int) ($value['30']); 
    } 
    return $data; 
} 
$data=prepare_client_data($data); 

или

function prepare_client_data($data) { 
    foreach ($data as $index => $value) { 
     if ($index < 1) 
      continue; 
     $data[$index]['3'] = (int) ($data[$index]['3']); 
     $data[$index]['18'] = (int) ($data[$index]['18']); 
     $data[$index]['20'] = (int) ($data[$index]['20']); 
     $data[$index]['22'] = (int) ($data[$index]['22']); 
     $data[$index]['25'] = (int) ($data[$index]['25']); 
     $data[$index]['30'] = (int) ($data[$index]['30']); 
    } 
} 

Это будет работать только если у вас есть числовое значение, а не альфа

+0

Неправильно! Кудрявые скобки немедленно дадут ему ОШИБКУ !! Его программа работает !! Просто он забыл использовать фигурные скобки в вопросе во время публикации! –

+0

либо Кстати, он пропустил одну фигурную скобку во время публикации quesstion –

+0

почему $ value не работал в этом случае? –

Смежные вопросы