2014-01-31 30 views
1

我不是要求你爲我編寫代碼,或者代碼片段,或者只是指引我朝着正確的方向,將會幫助我走出很多困境。將一個字符串拆分爲一個數組,並根據它們的字母賦值?

這就是我基本上試圖做的,你有我想要的字符串分割成一個數組單詞「ABCDEFG」

(或什麼效果最好?),然後根據分配的值在什麼字母被存儲到數組中。 (基於字母表,A = 1,B = 2,C = 3,Z = 26)

所以ABCDEFG會變成類似

$foo("a" => 1, "b" =>2, "c" => 3, etc..); 

但很明顯,如果 「ABCDEFG」 是 「ZAJ」 ,數組將會是「z」=> 26,「a」=> 1,「j」=> 10

基本上,將一串字母轉換爲它們的字母數字值sorta?

回答

0

已實施此步驟的步驟。

  • 生成一個字母陣列(從索引1開始字母)
  • 獲取要生成作爲陣列值。
  • 將它們分割了str_split
  • 使用foreach構建搜索他們使用array_search
  • 創建的時候才發現前面的字母陣列中,只要抓住他們的鍵和值,並把它的新陣列英寸

<?php 
$alph[]='Start'; 
foreach(range('a','z') as $val) 
{ 
    $alph[]=$val; 
} 

$makethisvalasarray='zaj'; 
$makethisvalasarray=str_split($makethisvalasarray); 

foreach($makethisvalasarray as $val) 
{ 
    $newarr[$val]=array_search($val,$alph); 
} 

print_r($newarr); 

OUTPUT :

Array 
(
    [z] => 26 
    [a] => 1 
    [j] => 10 
) 
+0

我已經知道關於str_split,但我有一個問題根據它是什麼字母來分配值。我會再看看php文檔,也許我錯過了一些東西。 – user3106858

+0

@ user3106858,請檢查編輯後的答案。 –

+1

謝謝!我非常感謝幫助。 – user3106858

1

你需要的功能有:

有了這些功能,你可以在一個非常小的幾行代碼的解決了這個問題。

+0

謝謝,我現在就看看他們! – user3106858

+2

@ user3106858使用'ord'你可能需要使用'strtolower'以及從結果中減去96。 – Prix

+0

我也注意到了。再次感謝。這讓我感到困惑,但我不明白我能用這個做什麼。 :) – user3106858

相關問題