2017-09-27 3 views
0

특정 POST에서 모든 데이터를 포함하는 배열 ..Input :: post() 데이터를 어떻게 반복합니까? 매개 변수없이 나의 이해 <code>Input::post();</code>으로

나는이 $all_input = Input::post();

를하고있는 중이 야하지만 내가 (자바와 같은 배열을 반복하고 어떻게 것입니다 반환 당신도 그것을?)

for ($i=0; $i<count($all_input); $i++) 
    { 
     if (strpos($all_input[$i], 'something') == true) // ERROR... 

하지만 인덱스가 발견되지 않았 음을 의미 믿는 오류 Undefined offset: 0와 응용 프로그램이 충돌?

if (!isset($all_input)) 
    { 
     return; 
    } 

어떻게 당신이 그들을 통해 반복 할 수있는 데이터를 액세스 할 수있는 경우 :

는 또한 아무 소용이 추가 시도? 나는 그 코드를 제거하면 브라우저에서 디버깅하는 동안 버튼을 누를 때 볼 수있는 데이터가 있다는 것을 알고 있습니다.

당신은 이미 내가 자바 개발자에서 오는하고 그것을 알아낼하지 않았고 난 그냥 당신이 개체를 처리하기 때문에

+1

당신의'$ all_input'은 아마도 연관 배열 일 것입니다. 당신은 아마도 존재하지 않는 if 문에서 그것의 인덱스에 0을 접근하려고합니다. 'var_dump ($ all_input)'- 당신이 가지고있는 데이터를 확인하기 위해서 – ArtOsi

답변

1

기본적

: https://fuelphp.com/docs/classes/input.html#/method_post Input::post();는 ASSOC 배열이다 $_POST를 반환한다. 여기에 소스 코드가 있습니다. 왜냐하면 fuelphp의 설명서가이를 정확히 다루지 않기 때문입니다.

/** 
* Fetch an item from the POST array 
* 
* @param string $index The index key 
* @param mixed $default The default value 
* @return string|array 
*/ 
public static function post($index = null, $default = null) 
{ 
    return (func_num_args() === 0) ? $_POST : \Arr::get($_POST, $index, $default); 
} 

당신은 귀하의 의견 이름으로 참조해야합니다, 그래서 당신은 당신이 '이름'전화 입력이있는 경우, 그 경우에 당신은 $all_input['name']를 참조 할 필요가있다. array_keys() 기능을 사용하여 키를 가져올 수 있습니다. 이 상황에서 foreach을 사용하면 더 좋습니다. 마찬가지로 :

foreach($all_input as $key => $value) { 
    echo 'Input key: ' . $key . ' value: ' . $value; 
} 

당신은 왼쪽 경우 $key => 당신이 foreach는 내부에 그것을 사용하지 않는 경우, 당신이 그것을 남아 있습니다 만 값을 얻을 것이다. 당신이 foreach는 somewhy 사용하지 않을 경우

는 :

$all_input = Input::post(); 
$keys = array_keys($all_input); 
for ($i = 0; $i < count($keys); $i++) { 
    if (strpos($all_input[$keys[$i]], 'something') == true) { 
     // Do your stuff here. 
    } 
} 

를하지만 가능하면 난 아직도 foreach는 추천, 그것은 적은 오버 헤드와 청소기 코드입니다.

+0

assoc 배열에 대해 처음 듣는 것입니다. 흥미 롭 군. 'Input :: post ('key')'라고 말하지만, $ _POST가 많은 변수를 반환한다고 가정하자면, 그것들은 모두'array [ 'key'] [0] = $ value' 등으로 저장 될 것입니까? –

+0

OP가 FuelPHP로 문제를 태그 한 경우 전세계에서 CodeIgniter 문서를 인용하는 이유는 무엇입니까?문법은 FuelPHP와 정확히 동일합니다. 그렇기 때문에 원리는 뒤에 있습니다.하지만 이것은 OP와 같은 초보자에게는 혼란을 줄 것입니다. – patricksweeney

+0

@patricksweeney 예 ... 그건 사실입니다. 그래서 fuelphp와 소스 코드를 포함 시켰습니다. 왜냐하면이 문서를 정확하게 말하지 않았기 때문입니다 ... – golddragon007

0

이 작동하지 않습니다 ... PHP는 그렇게하시기 바랍니다 나와 함께 곰 배우기 시작하는 경우 (입력) 배열이 아닙니다.

for 루프를 사용하는 것이 좋습니다. 입력 개체의 내용/구조를 확인하기 위해 dd()를 사용하여 입력 개체 전체를 볼 수도 있습니다. 이에 따라

$input = Input::post(); 

foreach($input as $i) { 

    echo $i; //this is a property of the Input Object. if you have arrays or other objects store inside of it, you may need to go deeper into the oject either with a foreach loop again or by calling the property directly ($i->property) 

};