2016-11-16 7 views
0

에서 문자열에 부착 된 번호를 사용하는 방법 :내가 카드 갑판 배열이 연관 배열

$cards = array("2_of hearts" => 2, "3_of_hearts" => 3, "king_of_hearts" => 10); 

을 그리고 어디 선가 카드의 이름을 에코하려면 (예 : 2_of_hearts)뿐만 아니라, 뭔가를 계산을 그 번호는 그것에 붙어 있지만 실제로 작동하게 만들 수는 없습니다. 또한, 나에게 맞는 대답을 찾을 수 없었다.

누구든지이 작업을 수행하는 방법을 알고 있습니까?

+1

얼굴, 정장 및 값이있는 카드 클래스를 만드는 것을 고려 했습니까? 문자열을 처리하여 값을 얻는 것보다 객체 속성에 액세스하는 것이 훨씬 쉽습니다. – actc

답변

1

키와 값을 제공하는 foreach 루프를 사용하는 경우 2_of hearts2이 변수로 사용됩니다.

$cards = array("2_of hearts" => 2, "3_of_hearts" => 3, "king_of_hearts" => 10); 
foreach ($cards as $name => $value) { 
    echo $name . ' has a value of ' . $value.PHP_EOL; 
    $calc = $value + 5; 
    echo 'ADDED 5 - gives ' . $calc . PHP_EOL; 
} 

결과

다음
2_of hearts has a value of 2 
ADDED 5 - gives 7 
3_of_hearts has a value of 3 
ADDED 5 - gives 8 
king_of_hearts has a value of 10 
ADDED 5 - gives 15 

당신은 어떻게 당신이 배열의 키에 대한 액세스를 얻을 수 있습니다 foreach이 구문을 사용하여 $value 변수

+0

이렇게하면 $ name과 $ value가 모두 값으로 표시되어 카드를 에코 할 수 없게됩니다. – Blasty

+1

그럼 뭔가 잘못하고있다. – RiggsFolly

+0

새로운 샘플 코드를보고,'$ value'를 사용하여 더미 계산을 추가했다. – RiggsFolly

0

하여 계산

$cards = array("2_of hearts" => 2, "3_of_hearts" => 3, "king_of_hearts" => 10); 
foreach($cards as $key=> $value){ 
    $key = explode("_",$key); 
    $cardname = $key[count($key)-1]; 
    //echo $key[0] . " of " $cardname . "<br>"; 
    echo $value . " of " $cardname . "<br>"; // edit after comments 
} 

참고 : 열쇠가 맞다면이 과정이 취소됩니다. 웨이가 패턴을 가짐 #_of_cardname

+0

'$ value'에서 값을 사용하고 인생을 멋지게 만들어주는 것이 잘못되었습니다. – RiggsFolly

+0

@RiggsFolly 아무것도 사용할 수 없습니다. '$ value' 과정에서. 나는 그에게 카드 이름만을 추출하길 원했다. –

+0

@RiggsFolly'$ value'를 사용하여 실제로 패턴을 신뢰할 수 없으므로 훨씬 더 신뢰할 만하지만, 말했듯이 나는 카드 이름을 추출하기를 원했다. '$ value'를 사용하는 오프 코스는'$ key [0]'을 사용하는 것보다 낫다. –