2013-06-18 1 views
1

에서 PHP 변수에서 요소를 삽입 array 0 => string ''use_funds'=>'no'' (length=17). 그리고 문자열 때문에 내 데이터가 내 테이블에 삽입되지 않습니다. $cnd을 문자열 대신 결합 배열 요소로 만들려면 어떻게해야합니까?나는이 같은 조건 문자열을 연관 배열

는 아래의 코드를 사용하여 :

+0

왜'$ CND을 수행 http://php.net/manual/en/function.explode.php

폭발 기능은

$my_string_split = explode('=>', $cnd); // returns [0 => 'use_funds', 1 => 'no'] $data[$my_string_split[0]] = $my_string_split[1]; 

이 문자열 일 필요하지 않는 경우, 문자 그대로 그것을 할 문자열을 받아서 배열로 나누기 'PHP 코드가 들어 있습니까? '$ use_funds = 'no' '와 같은 것을 갖는 것이 더 합리적이지 않습니까? –

답변

3
if (your condition) { 
    $data['use_funds'] = 'no'; 
} else { 
    //some other code 
} 
+0

RST ... 감사합니다. Stackoverflow 얘들 아 awsm 있습니다 :) – Nitish

+0

안녕하세요 Nithish, 당신은 솔루션을 가지고 있다면, 다음 RST 대답을 수락하십시오. 이 질문을 열지 마십시오 – Akilan

2

배열에있는 데이터를 확인하고 삽입은 $ CND 부분을 사용하지 않는

$data['use_funds'] = 'no'; 

을 그리고이 코드는 배열을 추가합니다. 또는 PHP의 array_push 함수를 사용할 수 있습니다.

+0

'array_push'는 연관 어레이가 예상대로 동작하지 않습니다. (http://codepad.org/b4of4dml) –

+0

@PhpMyCoder ok 그러면 두 개의 배열을 만들어서 array_merge를 제안 할 수 있습니다 병합합니다. –

+1

소리가 좋습니다. 제안에 +1. –

-1

당신은 모든 $cnd이다 아닌 문자열 배열의 eval

$cnd = "'use_funds'=>'no'"; 

eval("\$x = array($cnd);"); 

print_r($x); 
+0

eval을 사용하지 마십시오. 주어진 문자열을 코드로 해석하려고 시도합니다. 특히 문자열이 좋지 않은 것으로 알려진 조건에서는 매우 안전하지 않습니다. 관계없이 항상 결과를 얻는 데 더 안전한 방법이 있습니다. – DivinusVox

+0

'eval'이 사용합니다. 이 상황은 미리 정의 된 입력이므로 안전 문제는 없습니다. 내 솔루션이 현재 설정을 변경하지 않았습니다. 다른 사람들은 일반적인 배열 키 추가에 대해 몰랐다고 가정합니다. – DevZer0

0

먼저 사용하여 수행 할 수 있습니다. 이 $cnd$data 배열을 추가하려고합니다.

배열에 요소를 추가하기 위해 기본적으로 push() 메서드를 사용합니다. 당신은 당신이 다음 단계 아래에 따라 결과를 원하는하려는 경우 귀하의 경우를 들어 당신이 array_push 방법을 사용하는 경우 당신은

array_push($cnd,$data); 
$data=array(
            0=>'use_funds'=>'no', 
            'quantity'=>$_POST['qty_'.$q], 
            'veg_name'=>$_POST['veg_name_'.$q], 
            'rate'=>$_POST['rate_'.$q], 
            'ws_price' => $_POST['ws_price_'.$q], 
            'ret_price' => $_POST['ret_price_'.$q], 
            'mop' => $_POST['mop_'.$q], 
            'ret_margin' =>$_POST['ret_margin_'.$q] 
); 

그래서 내 suggession이 될 것입니다 아래에 같은 출력을 얻을 것이다 : -

either define your $cnd as an array and then use array_merge(); 
0
echo $cnd = "'use_funds'=>'no'"; 

위의 행은 "'use_funds'=>'no'"을 문자열로 간주하여 $cnd에 할당합니다. 그래서 무엇이든지, 당신이 그것에 적절한 변경을하지 않으면 항상 문자열로 남아 있습니다. 이 경우 기본 키는 0입니다. 같은, 그것은 것입니다 :

[0] => "'use_funds'=>'no'" 

이 문제를 해결하기 위해서는, 당신은이 작업을 수행 할 수 있습니다

$cnd = array('use_funds'=>'no'); 

를 그리고, 당신이 사용 array_merge() 기능이 같은 두 개의 병합 :

array_merge($cnd, $data); 
1

문자열이어야하는 경우 분할하여 배열에 추가하십시오.

$data['use_funds'] = 'no';