Php 将字符串拆分为数组,并根据其字母指定值?

Php 将字符串拆分为数组,并根据其字母指定值?,php,arrays,Php,Arrays,我不是要求你为我编写代码或其他任何东西,代码片段或只是为我指出正确的方向会对我有很大帮助 这就是我想做的,你有“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”=

我不是要求你为我编写代码或其他任何东西,代码片段或只是为我指出正确的方向会对我有很大帮助

这就是我想做的,你有“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


基本上,将一串字母转换成按字母顺序排列的num值sorta?

实现这一点的步骤

  • 生成字母表数组(字母表从索引1开始)
  • 获取要生成为数组的值
  • stru Split
  • 使用
    foreach
    construct在使用
    array\u search
  • 找到时,只需抓取它们的键和值并将其放入新数组中


您需要的功能包括:


使用这些函数,您可以在非常少的代码行中解决此问题。

我已经知道str_split,但是我遇到了一个问题,即根据它是什么字母来分配值。我将再次查看php文档,可能我遗漏了什么。@user3106858使用
ord
您可能需要使用
strtolower
以及从结果中减去96。我也注意到了这一点。再次感谢。这有点让我困惑,但我会看看我能做些什么@user3106858
ord
的结果是ascii码,因此您需要减去96使其按a=1、b=2等顺序排列。执行此类操作时,典型的代码片段类似于:
ord($letter)-ord('a')
<?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);
Array
(
    [z] => 26
    [a] => 1
    [j] => 10
)